|
1 | 1 | <script lang="ts"> |
2 | | - import { mdiAccountPlus, mdiCheck, mdiClose, mdiRefresh } from '@mdi/js'; |
3 | | - import { deletePanelUser, getPanelUsers } from '$lib/code/api'; |
| 2 | + import { mdiAccountMultipleRemove, mdiAccountPlus, mdiCheck, mdiClose, mdiRefresh } from '@mdi/js'; |
| 3 | + import { deletePanelUser, getPanelUsers, wipeUserSessions } from '$lib/code/api'; |
| 4 | + import { onMount } from 'svelte'; |
4 | 5 | import Icon from '$lib/components/elements/icon.svelte'; |
5 | 6 | import { navigateToPage } from '$lib/code/routing'; |
6 | 7 | import { Page, type IPanelUser } from '../../../types'; |
7 | 8 | import Spinner from '$lib/components/elements/spinner.svelte'; |
8 | 9 | import PageTitleBanner from '$lib/components/page/pageTitleBanner.svelte'; |
9 | | - import { onMount } from 'svelte'; |
10 | 10 | import Button from '$lib/components/elements/button.svelte'; |
11 | 11 |
|
12 | 12 | let users: IPanelUser[] = []; |
|
33 | 33 | load(); |
34 | 34 | } |
35 | 35 |
|
| 36 | + function handleLogOutActiveUsersButton() { |
| 37 | + let allowedToLogout = confirm(`Are you sure you want to clear all active sessions? All users will need to login again, including you.`); |
| 38 | + if (!allowedToLogout) { |
| 39 | + return; |
| 40 | + } |
| 41 | +
|
| 42 | + wipeUserSessions((wasSuccess: boolean) => { |
| 43 | + if (wasSuccess) { |
| 44 | + confirm(`User sessions were cleared.`); |
| 45 | + } else { |
| 46 | + confirm(`Failed to wipe user sessions.`); |
| 47 | + } |
| 48 | + }); |
| 49 | + } |
| 50 | +
|
36 | 51 | function handleEditPanelUser(userId: string) { |
37 | 52 | navigateToPage(Page.UsersEdit, userId); |
38 | 53 | } |
|
72 | 87 | <Icon data={mdiRefresh} size={5} class="" /> |
73 | 88 | </button> |
74 | 89 | </div> |
| 90 | + <div class="self-center"> |
| 91 | + <button |
| 92 | + type="button" |
| 93 | + on:click={handleLogOutActiveUsersButton} |
| 94 | + class="px-3 py-1.5 text-sm font-medium text-red-600 dark:text-red-500 bg-white border border-gray-200 rounded-lg focus:outline-none hover:bg-red-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:border-gray-600 dark:hover:text-white dark:hover:bg-red-700" |
| 95 | + > |
| 96 | + <Icon data={mdiAccountMultipleRemove} size={5} class="" /> |
| 97 | + </button> |
| 98 | + </div> |
75 | 99 | <div class="self-center"> |
76 | 100 | <Button icon={mdiAccountPlus} text={'Create User'} on:click={() => navigateToPage(Page.UsersCreate)} reactive={true} /> |
77 | 101 | </div> |
|
0 commit comments