From 1b55d2dfbc06d900e7370a4ddfd81789a25bf00c Mon Sep 17 00:00:00 2001
From: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
Date: Tue, 2 Mar 2021 05:06:52 -0500
Subject: [PATCH] feat(ui): display "Owner" role instead of "Admin" for user ID
1 (#1050)
* feat(ui): display "Owner" role instead of "Admin" for user ID 1
Also add role to user settings page, and fix the missing "Account Type" string and use the same
verbiage on the user list page
* feat(lang): generate translation keys
* fix: utilize hasPermission returned by useUser instead of importing from server/lib/permissions
---
src/components/UserList/index.tsx | 9 ++++--
.../UserGeneralSettings/index.tsx | 29 +++++++++++++++++--
src/i18n/locale/en.json | 8 ++++-
3 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/src/components/UserList/index.tsx b/src/components/UserList/index.tsx
index ebe88b3a..e9be2cdf 100644
--- a/src/components/UserList/index.tsx
+++ b/src/components/UserList/index.tsx
@@ -32,13 +32,14 @@ const messages = defineMessages({
'{userCount, plural, =0 {No new users} one {# new user} other {# new users}} imported from Plex.',
user: 'User',
totalrequests: 'Total Requests',
- usertype: 'User Type',
+ accounttype: 'Account Type',
role: 'Role',
created: 'Created',
lastupdated: 'Last Updated',
edit: 'Edit',
bulkedit: 'Bulk Edit',
delete: 'Delete',
+ owner: 'Owner',
admin: 'Admin',
plexuser: 'Plex User',
deleteuser: 'Delete User',
@@ -472,7 +473,7 @@ const UserList: React.FC = () => {
{intl.formatMessage(messages.user)}
{intl.formatMessage(messages.totalrequests)}
- {intl.formatMessage(messages.usertype)}
+ {intl.formatMessage(messages.accounttype)}
{intl.formatMessage(messages.role)}
{intl.formatMessage(messages.created)}
{intl.formatMessage(messages.lastupdated)}
@@ -543,7 +544,9 @@ const UserList: React.FC = () => {
)}
- {hasPermission(Permission.ADMIN, user.permissions)
+ {user.id === 1
+ ? intl.formatMessage(messages.owner)
+ : hasPermission(Permission.ADMIN, user.permissions)
? intl.formatMessage(messages.admin)
: intl.formatMessage(messages.user)}
diff --git a/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx b/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx
index d426f87c..3551aff3 100644
--- a/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx
+++ b/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx
@@ -7,7 +7,7 @@ import { useToasts } from 'react-toast-notifications';
import useSWR from 'swr';
import { Language } from '../../../../../server/lib/settings';
import useSettings from '../../../../hooks/useSettings';
-import { UserType, useUser } from '../../../../hooks/useUser';
+import { UserType, useUser, Permission } from '../../../../hooks/useUser';
import Error from '../../../../pages/_error';
import Badge from '../../../Common/Badge';
import Button from '../../../Common/Button';
@@ -19,8 +19,13 @@ const messages = defineMessages({
displayName: 'Display Name',
save: 'Save Changes',
saving: 'Saving…',
+ accounttype: 'Account Type',
plexuser: 'Plex User',
localuser: 'Local User',
+ role: 'Role',
+ owner: 'Owner',
+ admin: 'Admin',
+ user: 'User',
toastSettingsSuccess: 'Settings successfully saved!',
toastSettingsFailure: 'Something went wrong while saving settings.',
region: 'Discover Region',
@@ -37,7 +42,9 @@ const UserGeneralSettings: React.FC = () => {
const intl = useIntl();
const { addToast } = useToasts();
const router = useRouter();
- const { user, mutate } = useUser({ id: Number(router.query.userId) });
+ const { user, hasPermission, mutate } = useUser({
+ id: Number(router.query.userId),
+ });
const { currentSettings } = useSettings();
const { data, error, revalidate } = useSWR<{
username?: string;
@@ -107,7 +114,9 @@ const UserGeneralSettings: React.FC = () => {
return (