Add impersonation route
This commit is contained in:
parent
7540190794
commit
95692db8bd
3 changed files with 58 additions and 6 deletions
|
|
@ -18,9 +18,25 @@
|
|||
export let uid;
|
||||
|
||||
let allPromos = false;
|
||||
|
||||
let myuser = null;
|
||||
let userP = null;
|
||||
$: userP = getUser(uid).then((u) => myuser = u)
|
||||
|
||||
function impersonate() {
|
||||
fetch('api/auth/impersonate', {
|
||||
method: 'POST',
|
||||
headers: {'Accept': 'application/json'},
|
||||
body: JSON.stringify({"id": myuser.id}),
|
||||
}).then(() => {
|
||||
if (res.status == 200) {
|
||||
user.update(res);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
{#await getUser(uid)}
|
||||
{#await userP}
|
||||
<h2>
|
||||
Étudiant
|
||||
</h2>
|
||||
|
|
@ -42,13 +58,22 @@
|
|||
</h2>
|
||||
{#if student.promo}
|
||||
<span class="badge bg-success ms-1">{student.promo}</span>
|
||||
{#if $user && $user.is_admin && $user.current_promo && student.promo != $user.current_promo}
|
||||
{#if $user && $user.is_admin}
|
||||
{#if $user.current_promo && student.promo != $user.current_promo}
|
||||
<button
|
||||
class="btn btn-sm btn-warning mx-1"
|
||||
title="Passer sur la promo en cours"
|
||||
on:click={() => { student.promo = $user.current_promo; student.save(); }}
|
||||
>
|
||||
<i class="bi bi-arrow-up"></i>
|
||||
</button>
|
||||
{/if}
|
||||
<button
|
||||
class="btn btn-sm btn-warning mx-1"
|
||||
title="Passer sur la promo en cours"
|
||||
on:click={() => { student.promo = $user.current_promo; student.save(); }}
|
||||
class="btn btn-sm btn-primary mx-1"
|
||||
title="Impersonate"
|
||||
on:click={impersonate}
|
||||
>
|
||||
<i class="bi bi-arrow-up"></i>
|
||||
<i class="bi bi-person-bounding-box"></i>
|
||||
</button>
|
||||
{/if}
|
||||
{/if}
|
||||
|
|
|
|||
Reference in a new issue