diff --git a/src/boot/routes.js b/src/boot/routes.js
index 515a08a96..9b00a8004 100644
--- a/src/boot/routes.js
+++ b/src/boot/routes.js
@@ -86,7 +86,7 @@ export default (store) => {
},
{
name: 'user-profile-admin-view',
- path: '/admin/users/$:id',
+ path: '/users/$:id/admin_view',
component: defineAsyncComponent(
() => import('src/components/user_profile/user_profile_admin_view.vue'),
),
diff --git a/src/components/moderation_tools/moderation_tools.js b/src/components/moderation_tools/moderation_tools.js
index 7ee049a7f..82d24e4e4 100644
--- a/src/components/moderation_tools/moderation_tools.js
+++ b/src/components/moderation_tools/moderation_tools.js
@@ -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()
}
diff --git a/src/components/user_profile/user_profile.scss b/src/components/user_profile/user_profile.scss
index dbbf8008d..35aa49ca9 100644
--- a/src/components/user_profile/user_profile.scss
+++ b/src/components/user_profile/user_profile.scss
@@ -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);
+ }
}
}
diff --git a/src/components/user_profile/user_profile_admin_view.js b/src/components/user_profile/user_profile_admin_view.js
index 8a3a80a36..1ad849902 100644
--- a/src/components/user_profile/user_profile_admin_view.js
+++ b/src/components/user_profile/user_profile_admin_view.js
@@ -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
diff --git a/src/components/user_profile/user_profile_admin_view.vue b/src/components/user_profile/user_profile_admin_view.vue
index f841e57c8..992ce3b4b 100644
--- a/src/components/user_profile/user_profile_admin_view.vue
+++ b/src/components/user_profile/user_profile_admin_view.vue
@@ -7,20 +7,21 @@
+
+ {{ $t('admin_dash.users.godmode') }}
+
-
+
diff --git a/src/i18n/en.json b/src/i18n/en.json
index 2d8223e85..e7c03d673 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -1298,6 +1298,7 @@
"users": {
"title": "Users",
"local_id": "Local ID",
+ "godmode": "Show direct messages",
"labels": {
"query": "Search",
"name": "Name",
@@ -1798,6 +1799,7 @@
"remove_suggested_account": "Remove from suggested",
"approve_account": "Approve",
"confirm_account": "Confirm",
+ "show_statuses": "Show all posts",
"disable_mfa": "Disable MFA",