mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
fix(ui): don't show "Password" user settings tab if current user lacks perms to modify the password (#1063)
This commit is contained in:
@@ -33,7 +33,7 @@ const messages = defineMessages({
|
|||||||
nopasswordsetDescription:
|
nopasswordsetDescription:
|
||||||
'This user account currently does not have a password specifically for {applicationTitle}.\
|
'This user account currently does not have a password specifically for {applicationTitle}.\
|
||||||
Configure a password below to enable this account to sign in as a "local user."',
|
Configure a password below to enable this account to sign in as a "local user."',
|
||||||
nopermission: 'No Permission',
|
nopermission: 'Unauthorized',
|
||||||
nopermissionDescription:
|
nopermissionDescription:
|
||||||
"You do not have permission to modify this user's password.",
|
"You do not have permission to modify this user's password.",
|
||||||
});
|
});
|
||||||
|
@@ -2,7 +2,8 @@ import Link from 'next/link';
|
|||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { defineMessages, useIntl } from 'react-intl';
|
import { defineMessages, useIntl } from 'react-intl';
|
||||||
import { Permission, useUser } from '../../../hooks/useUser';
|
import { useUser } from '../../../hooks/useUser';
|
||||||
|
import { Permission, hasPermission } from '../../../../server/lib/permissions';
|
||||||
import Error from '../../../pages/_error';
|
import Error from '../../../pages/_error';
|
||||||
import LoadingSpinner from '../../Common/LoadingSpinner';
|
import LoadingSpinner from '../../Common/LoadingSpinner';
|
||||||
import PageTitle from '../../Common/PageTitle';
|
import PageTitle from '../../Common/PageTitle';
|
||||||
@@ -28,7 +29,7 @@ interface SettingsRoute {
|
|||||||
const UserSettings: React.FC = ({ children }) => {
|
const UserSettings: React.FC = ({ children }) => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const settings = useSettings();
|
const settings = useSettings();
|
||||||
const { hasPermission } = useUser();
|
const { user: currentUser } = useUser();
|
||||||
const { user, error } = useUser({ id: Number(router.query.userId) });
|
const { user, error } = useUser({ id: Number(router.query.userId) });
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
|
|
||||||
@@ -77,8 +78,14 @@ const UserSettings: React.FC = ({ children }) => {
|
|||||||
}> = ({ children, route, regex, isMobile = false }) => {
|
}> = ({ children, route, regex, isMobile = false }) => {
|
||||||
if (
|
if (
|
||||||
route === '/settings/password' &&
|
route === '/settings/password' &&
|
||||||
!settings.currentSettings.localLogin &&
|
((!settings.currentSettings.localLogin &&
|
||||||
!hasPermission(Permission.MANAGE_SETTINGS)
|
!hasPermission(
|
||||||
|
Permission.MANAGE_SETTINGS,
|
||||||
|
currentUser?.permissions ?? 0
|
||||||
|
)) ||
|
||||||
|
(currentUser?.id !== 1 &&
|
||||||
|
currentUser?.id !== user?.id &&
|
||||||
|
hasPermission(Permission.ADMIN, user?.permissions ?? 0)))
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -133,6 +140,7 @@ const UserSettings: React.FC = ({ children }) => {
|
|||||||
route.requiredPermission
|
route.requiredPermission
|
||||||
? hasPermission(
|
? hasPermission(
|
||||||
route.requiredPermission,
|
route.requiredPermission,
|
||||||
|
currentUser?.permissions ?? 0,
|
||||||
route.permissionType
|
route.permissionType
|
||||||
)
|
)
|
||||||
: true
|
: true
|
||||||
@@ -157,6 +165,7 @@ const UserSettings: React.FC = ({ children }) => {
|
|||||||
route.requiredPermission
|
route.requiredPermission
|
||||||
? hasPermission(
|
? hasPermission(
|
||||||
route.requiredPermission,
|
route.requiredPermission,
|
||||||
|
currentUser?.permissions ?? 0,
|
||||||
route.permissionType
|
route.permissionType
|
||||||
)
|
)
|
||||||
: true
|
: true
|
||||||
|
@@ -714,7 +714,7 @@
|
|||||||
"components.UserProfile.UserSettings.UserPasswordChange.newpassword": "New Password",
|
"components.UserProfile.UserSettings.UserPasswordChange.newpassword": "New Password",
|
||||||
"components.UserProfile.UserSettings.UserPasswordChange.nopasswordset": "No Password Set",
|
"components.UserProfile.UserSettings.UserPasswordChange.nopasswordset": "No Password Set",
|
||||||
"components.UserProfile.UserSettings.UserPasswordChange.nopasswordsetDescription": "This user account currently does not have a password specifically for {applicationTitle}. Configure a password below to enable this account to sign in as a \"local user.\"",
|
"components.UserProfile.UserSettings.UserPasswordChange.nopasswordsetDescription": "This user account currently does not have a password specifically for {applicationTitle}. Configure a password below to enable this account to sign in as a \"local user.\"",
|
||||||
"components.UserProfile.UserSettings.UserPasswordChange.nopermission": "No Permission",
|
"components.UserProfile.UserSettings.UserPasswordChange.nopermission": "Unauthorized",
|
||||||
"components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "You do not have permission to modify this user's password.",
|
"components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "You do not have permission to modify this user's password.",
|
||||||
"components.UserProfile.UserSettings.UserPasswordChange.password": "Password",
|
"components.UserProfile.UserSettings.UserPasswordChange.password": "Password",
|
||||||
"components.UserProfile.UserSettings.UserPasswordChange.save": "Save Changes",
|
"components.UserProfile.UserSettings.UserPasswordChange.save": "Save Changes",
|
||||||
|
Reference in New Issue
Block a user