Implement user deletion

This commit is contained in:
Johannes Zellner
2025-02-12 15:18:45 +01:00
parent bd44bb4534
commit c9d875e3fa
4 changed files with 69 additions and 40 deletions

View File

@@ -134,6 +134,23 @@ async function onRemoveGroup(group) {
await refreshGroups();
}
async function onRemoveUser(user) {
const yes = await inputDialog.value.confirm({
title: t('users.deleteUserDialog.title', { username: (user.username || user.email) }),
message: t('users.deleteUserDialog.description'),
confirmStyle: 'danger',
confirmLabel: t('users.deleteUserDialog.deleteAction'),
rejectLabel: t('main.dialog.cancel')
});
if (!yes) return;
const [error] = await usersModel.remove(user.id);
if (error) console.error(error);
await refreshUsers();
}
onMounted(async () => {
const [error, result] = await profileModel.get();
if (error) return console.error(error);
@@ -193,7 +210,7 @@ onMounted(async () => {
<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="!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="userRemove.show(user)" v-tooltip="$t('users.users.removeUserTooltip')" icon="far fa-trash-alt" />
<Button small tool danger :disabled="!canEdit(user) || isMe(user)" @click="onRemoveUser(user)" v-tooltip="$t('users.users.removeUserTooltip')" icon="far fa-trash-alt" />
</div>
</template>
</TableView>