godmode implemented

This commit is contained in:
Henry Jameson 2026-06-10 17:38:31 +03:00
commit 9fbc832de9
6 changed files with 34 additions and 9 deletions

View file

@ -77,6 +77,13 @@ const ENTRIES = [
{
separator: true,
},
{
check: 'action:statuses',
label: 'user_card.admin_menu.show_statuses',
},
{
separator: true,
},
{
check: 'action:disable_mfa',
label: 'user_card.admin_menu.disable_mfa',
@ -217,6 +224,9 @@ const ModerationTools = {
case 'disable_mfa': {
return () => this.disableMFA()
}
case 'statuses': {
return () => this.$router.push(`/users/\$${this.users[0].id}/admin_view`)
}
case 'require_password_change': {
return () => this.requirePasswordChange()
}

View file

@ -26,18 +26,22 @@
}
&.-admin-view {
.godmode {
padding: 1em;
}
.list-item {
padding: 0;
border-bottom: 1px solid var(--border);
.admin-actions {
background: var(--background);
}
.Status{
width: 100%
}
}
.footer {
background: var(--background);
}
}
}

View file

@ -3,6 +3,7 @@ import { mapState } from 'pinia'
import List from 'src/components/list/list.vue'
import Status from 'src/components/status/status.vue'
import Checkbox from 'src/components/checkbox/checkbox.vue'
import UserCard from 'src/components/user_card/user_card.vue'
import { useAdminSettingsStore } from 'src/stores/admin_settings.js'
@ -22,6 +23,7 @@ const UserProfileAdminView = {
},
created() {
this.userId = this.$route.params.id
this.$store.dispatch('fetchUserIfMissing', this.userId)
useInterfaceStore().setForeignProfileBackground(this.user?.background_image)
},
updated() {
@ -55,7 +57,13 @@ const UserProfileAdminView = {
UserCard,
List,
Status,
Checkbox,
},
watch: {
godmode() {
this.$refs.list.reset()
}
}
}
export default UserProfileAdminView

View file

@ -7,20 +7,21 @@
<UserCard
:user-id="userId"
:compact="true"
avatar-action="zoom"
hide-bio
hide-buttons
/>
<Checkbox class="godmode" v-model="godmode">
{{ $t('admin_dash.users.godmode') }}
</Checkbox>
</div>
<List
ref="list"
:fetch-function="fetchStatuses"
@select="onSelect"
scrollable
>
<template #item="{item}">
<Status
:statusoid="item"
/>
<Status :statusoid="item" />
</template>
</List>
</div>