user card admin info

This commit is contained in:
Henry Jameson 2026-06-10 14:09:07 +03:00
commit 14a4ca2f75
5 changed files with 95 additions and 24 deletions

View file

@ -8,7 +8,15 @@ import { useMergedConfigStore } from 'src/stores/merged_config.js'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
const BasicUserCard = {
props: ['user'],
props: {
user: {
type: Object,
},
showLineLabels: {
type: Boolean,
default: false,
}
},
components: {
UserPopover,
UserAvatar,

View file

@ -23,6 +23,10 @@
:title="user.name"
class="basic-user-card-user-name"
>
<strong v-if="showLineLabels">
{{ $t('admin_dash.users.labels.name_colon') }}
{{ ' ' }}
</strong>
<RichContent
class="basic-user-card-user-name-value"
:html="user.name"
@ -31,6 +35,10 @@
/>
</div>
<div>
<strong v-if="showLineLabels">
{{ $t('admin_dash.users.labels.handle_colon') }}
{{ ' ' }}
</strong>
<user-link
class="basic-user-card-screen-name"
:user="user"
@ -48,6 +56,7 @@
display: flex;
flex: 1 0;
margin: 0;
line-height: 1.25;
--emoji-size: 1em;
@ -69,7 +78,7 @@
&-user-name-value,
&-screen-name {
display: inline-block;
display: inline;
max-width: 100%;
overflow: hidden;
white-space: nowrap;

View file

@ -10,7 +10,31 @@
<BasicUserCard
class="AdminCard"
:user="user"
show-line-labels
>
<div>
<strong>
{{ $t('admin_dash.users.labels.email_colon') }}
</strong>
{{ ' ' }}
<template v-if="user.adminData.email == null">
{{ $t('general.not_available') }}
</template>
<a :href="'mailto:' + user.adminData.email">
{{ user.adminData.email }}
</a>
</div>
<details
v-if="user.adminData.registration_reason != null"
open
>
<summary>
{{ $t('user_card.admin_data.registration_reason') }}
</summary>
<span>
{{ user.adminData.registration_reason }}
</span>
</details>
<div class="right-side">
<label
v-if="isAdmin"

View file

@ -349,7 +349,7 @@
</div>
<div
class="admin-data"
v-if="user.adminData"
v-if="user.adminData && !hideBio"
>
<details>
<summary>
@ -357,6 +357,28 @@
</summary>
<div class="user-profile-fields">
<dl class="user-profile-field">
<dt class="user-profile-field-name">
{{ $t('admin_dash.users.local_id') }}
</dt>
<dd class="user-profile-field-value">
{{ user.adminData.id }}
</dd>
</dl>
<dl
v-if="user.is_local"
class="user-profile-field"
>
<dt class="user-profile-field-name">
{{ $t('admin_dash.users.labels.email') }}
</dt>
<dd class="user-profile-field-value">
{{ user.adminData.email == null ? $t('general.not_available') : user.adminData.email }}
</dd>
</dl>
<dl
v-if="user.is_local"
class="user-profile-field"
>
<dt class="user-profile-field-name">
{{ $t('general.role.admin') }}
</dt>
@ -364,7 +386,10 @@
{{ $t('general.' + (user.adminData.roles.admin ? 'yes' : 'no')) }}
</dd>
</dl>
<dl class="user-profile-field">
<dl
v-if="user.is_local"
class="user-profile-field"
>
<dt class="user-profile-field-name">
{{ $t('general.role.moderator') }}
</dt>
@ -372,12 +397,26 @@
{{ $t('general.' + (user.adminData.roles.moderator ? 'yes' : 'no')) }}
</dd>
</dl>
<dl class="user-profile-field">
<dl
v-if="user.is_local"
class="user-profile-field"
>
<dt class="user-profile-field-name">
{{ $t('admin_dash.users.labels.email') }}
{{ $t('admin_dash.users.indicator.confirmed') }}
</dt>
<dd class="user-profile-field-value">
{{ user.adminData.email == null ? $t('general.not_available') : user.adminData.email }}
{{ $t('general.' + (user.adminData.is_confirmed ? 'yes' : 'no')) }}
</dd>
</dl>
<dl
v-if="user.is_local"
class="user-profile-field"
>
<dt class="user-profile-field-name">
{{ $t('admin_dash.users.indicator.approved') }}
</dt>
<dd class="user-profile-field-value">
{{ $t('general.' + (user.adminData.is_approved ? 'yes' : 'no')) }}
</dd>
</dl>
<dl class="user-profile-field">
@ -388,23 +427,10 @@
{{ $t('general.' + (user.adminData.is_suggested ? 'yes' : 'no')) }}
</dd>
</dl>
<dl class="user-profile-field">
<dt class="user-profile-field-name">
{{ $t('admin_dash.users.indicator.confirmed') }}
</dt>
<dd class="user-profile-field-value">
{{ $t('general.' + (user.adminData.is_confirmed ? 'yes' : 'no')) }}
</dd>
</dl>
<dl class="user-profile-field">
<dt class="user-profile-field-name">
{{ $t('admin_dash.users.indicator.approved') }}
</dt>
<dd class="user-profile-field-value">
{{ $t('general.' + (user.adminData.is_approved ? 'yes' : 'no')) }}
</dd>
</dl>
<details open>
<details
v-if="user.is_local"
open
>
<summary>
{{ $t('user_card.admin_data.registration_reason') }}
</summary>

View file

@ -1297,10 +1297,14 @@
},
"users": {
"title": "Users",
"local_id": "Local ID",
"labels": {
"query": "Search",
"name": "Name",
"name_colon": "Name:",
"email": "Email",
"email_colon": "Email:",
"handle_colon": "Handle:",
"origin": "Origin",
"activity": "Activity",
"privileges": "Privileges"