summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/components/user-moderate-dialog.vue4
-rw-r--r--src/server/api/endpoints/admin/moderators/add.ts4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/client/components/user-moderate-dialog.vue b/src/client/components/user-moderate-dialog.vue
index f45342564c..61b8dd0ba1 100644
--- a/src/client/components/user-moderate-dialog.vue
+++ b/src/client/components/user-moderate-dialog.vue
@@ -3,7 +3,7 @@
<template #header><mk-user-name :user="user"/></template>
<div class="vrcsvlkm">
<mk-button @click="resetPassword()" primary>{{ $t('resetPassword') }}</mk-button>
- <mk-switch v-if="$store.state.i.isAdmin" @change="toggleModerator()" v-model="moderator">{{ $t('moderator') }}</mk-switch>
+ <mk-switch v-if="$store.state.i.isAdmin && !user.isAdmin" @change="toggleModerator()" v-model="moderator">{{ $t('moderator') }}</mk-switch>
<mk-switch @change="toggleSilence()" v-model="silenced">{{ $t('silence') }}</mk-switch>
<mk-switch @change="toggleSuspend()" v-model="suspended">{{ $t('suspend') }}</mk-switch>
</div>
@@ -47,7 +47,7 @@ export default Vue.extend({
type: 'waiting',
iconOnly: true
});
-
+
this.$root.api('admin/reset-password', {
userId: this.user.id,
}).then(({ password }) => {
diff --git a/src/server/api/endpoints/admin/moderators/add.ts b/src/server/api/endpoints/admin/moderators/add.ts
index 71a214928c..fd862a9a4f 100644
--- a/src/server/api/endpoints/admin/moderators/add.ts
+++ b/src/server/api/endpoints/admin/moderators/add.ts
@@ -32,6 +32,10 @@ export default define(meta, async (ps) => {
throw new Error('user not found');
}
+ if (user.isAdmin) {
+ throw new Error('cannot mark as moderator if admin user');
+ }
+
await Users.update(user.id, {
isModerator: true
});