Add impersonate dialog
This commit is contained in:
@@ -9,6 +9,7 @@ import { Button, ButtonGroup, TextInput, Dropdown, TableView, InputDialog } from
|
||||
import { ROLES } from '../constants.js';
|
||||
import Section from '../components/Section.vue';
|
||||
import GroupDialog from '../components/GroupDialog.vue';
|
||||
import ImpersonateDialog from '../components/ImpersonateDialog.vue';
|
||||
import UsersModel from '../models/UsersModel.js';
|
||||
import GroupsModel from '../models/GroupsModel.js';
|
||||
import ProfileModel from '../models/ProfileModel.js';
|
||||
@@ -48,6 +49,7 @@ const roles = ref([]);
|
||||
|
||||
const inputDialog = useTemplateRef('inputDialog');
|
||||
const groupDialog = useTemplateRef('groupDialog');
|
||||
const impersonateDialog = useTemplateRef('impersonateDialog');
|
||||
|
||||
const filteredUsers = computed(() => {
|
||||
return users.value.filter(u => {
|
||||
@@ -113,6 +115,10 @@ function groupMembers(group) {
|
||||
return group.userIds.filter(function (uid) { return !!usersById.value[uid]; }).map(function (uid) { return usersById.value[uid].username || usersById.value[uid].email; }).join(' ');
|
||||
}
|
||||
|
||||
function onImpersonate(user) {
|
||||
impersonateDialog.value.open(user);
|
||||
}
|
||||
|
||||
function onEditOrAddGroup(group = null) {
|
||||
groupDialog.value.open(group);
|
||||
}
|
||||
@@ -177,6 +183,7 @@ onMounted(async () => {
|
||||
<template>
|
||||
<InputDialog ref="inputDialog" />
|
||||
<GroupDialog ref="groupDialog" @success="refreshGroups()"/>
|
||||
<ImpersonateDialog ref="impersonateDialog" />
|
||||
|
||||
<div class="content">
|
||||
<Section :title="$t('main.navbar.users')">
|
||||
@@ -207,7 +214,7 @@ onMounted(async () => {
|
||||
<ButtonGroup>
|
||||
<Button small tool secondary :disabled="!canEdit(user)" v-if="!user.inviteAccepted && !isMe(user) && !user.source" @click="invitation.show(user)" v-tooltip="$t('users.users.invitationTooltip')" icon="fa-solid fa-paper-plane" />
|
||||
<Button small tool secondary :disabled="!canEdit(user)" v-if="user.inviteAccepted && !user.source" @click="passwordReset.show(user)" v-tooltip="$t('users.users.resetPasswordTooltip')" icon="fa-solid fa-key" />
|
||||
<Button small tool secondary :disabled="!canImpersonate(user)" @click="setGhost.show(user)" v-tooltip="$t('users.users.setGhostTooltip')" icon="fa-solid fa-user-secret" />
|
||||
<Button small tool secondary :disabled="!canImpersonate(user)" @click="onImpersonate(user)" v-tooltip="$t('users.users.setGhostTooltip')" icon="fa-solid fa-user-secret" />
|
||||
<Button small tool secondary :disabled="!canEdit(user)" @click="userEdit.show(user)" v-tooltip="$t('users.users.editUserTooltip')" icon="fa fa-pencil-alt" />
|
||||
</ButtonGroup>
|
||||
<Button small tool danger :disabled="!canEdit(user) || isMe(user)" @click="onRemoveUser(user)" v-tooltip="$t('users.users.removeUserTooltip')" icon="far fa-trash-alt" />
|
||||
|
||||
Reference in New Issue
Block a user