diff --git a/ui/src/lib/users.js b/ui/src/lib/users.js index ab10e86..4b82cde 100644 --- a/ui/src/lib/users.js +++ b/ui/src/lib/users.js @@ -19,6 +19,18 @@ export async function getUsers(promo, group) { } } +export async function anonOldAccounts() { + const res = await fetch('api/users', { + method: 'PATCH', + headers: {'Accept': 'application/json'}, + }); + if (res.status == 200) { + return await res.json() + } else { + throw new Error((await res.json()).errmsg); + } +} + export class User { constructor(res) { if (res) { diff --git a/ui/src/routes/users/+page.svelte b/ui/src/routes/users/+page.svelte index 91d895c..fd195a0 100644 --- a/ui/src/routes/users/+page.svelte +++ b/ui/src/routes/users/+page.svelte @@ -3,28 +3,45 @@ import { user } from '$lib/stores/user'; import DateFormat from '$lib/components/DateFormat.svelte'; - import { getUsers, getPromos } from '$lib/users'; + import { anonOldAccounts, getUsers, getPromos } from '$lib/users'; function showUser(user) { goto(`users/${user.id}`) } + let usersP = getUsers(); + function refreshUsers() { + usersP = getUsers(); + } + + function askAnon() { + if (confirm("Ceci va anonymiser tous les comptes des étudiants avant " + ($user.current_promo - 1) + ". Voulez-vous continuer ?")) + anonOldAccounts().then(refreshUsers); + } + let filterPromo = ""; {#if $user && $user.is_admin} + OAuth GitLab - + {#await getPromos() then promos} -
+