mirror of
https://github.com/sct/overseerr.git
synced 2025-12-26 08:25:07 +01:00
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
This commit is contained in:
@@ -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 = () => {
|
||||
</Table.TH>
|
||||
<Table.TH>{intl.formatMessage(messages.user)}</Table.TH>
|
||||
<Table.TH>{intl.formatMessage(messages.totalrequests)}</Table.TH>
|
||||
<Table.TH>{intl.formatMessage(messages.usertype)}</Table.TH>
|
||||
<Table.TH>{intl.formatMessage(messages.accounttype)}</Table.TH>
|
||||
<Table.TH>{intl.formatMessage(messages.role)}</Table.TH>
|
||||
<Table.TH>{intl.formatMessage(messages.created)}</Table.TH>
|
||||
<Table.TH>{intl.formatMessage(messages.lastupdated)}</Table.TH>
|
||||
@@ -543,7 +544,9 @@ const UserList: React.FC = () => {
|
||||
)}
|
||||
</Table.TD>
|
||||
<Table.TD>
|
||||
{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)}
|
||||
</Table.TD>
|
||||
|
||||
@@ -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 (
|
||||
<Form className="section">
|
||||
<div className="form-row">
|
||||
<div className="text-label">Account Type</div>
|
||||
<div className="text-label">
|
||||
{intl.formatMessage(messages.accounttype)}
|
||||
</div>
|
||||
<div className="mb-1 text-sm font-medium leading-5 text-gray-400 sm:mt-2">
|
||||
<div className="flex items-center max-w-lg">
|
||||
{user?.userType === UserType.PLEX ? (
|
||||
@@ -122,6 +131,20 @@ const UserGeneralSettings: React.FC = () => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="form-row">
|
||||
<div className="text-label">
|
||||
{intl.formatMessage(messages.role)}
|
||||
</div>
|
||||
<div className="mb-1 text-sm font-medium leading-5 text-gray-400 sm:mt-2">
|
||||
<div className="flex items-center max-w-lg">
|
||||
{user?.id === 1
|
||||
? intl.formatMessage(messages.owner)
|
||||
: hasPermission(Permission.ADMIN)
|
||||
? intl.formatMessage(messages.admin)
|
||||
: intl.formatMessage(messages.user)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="form-row">
|
||||
<label htmlFor="displayName" className="text-label">
|
||||
{intl.formatMessage(messages.displayName)}
|
||||
|
||||
Reference in New Issue
Block a user