mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-19 09:50:15 +01:00
🔒 refactor: Apply interface settings to all Roles (#3967)
This commit is contained in:
parent
748b41eda4
commit
0148b9b097
6 changed files with 20 additions and 15 deletions
|
|
@ -35,7 +35,10 @@ const AuthContextProvider = ({
|
|||
const [error, setError] = useState<string | undefined>(undefined);
|
||||
const [isAuthenticated, setIsAuthenticated] = useState<boolean>(false);
|
||||
const { data: userRole = null } = useGetRole(SystemRoles.USER, {
|
||||
enabled: !!(isAuthenticated && user?.role),
|
||||
enabled: !!(isAuthenticated && (user?.role ?? '')),
|
||||
});
|
||||
const { data: adminRole = null } = useGetRole(SystemRoles.ADMIN, {
|
||||
enabled: !!(isAuthenticated && user?.role === SystemRoles.ADMIN),
|
||||
});
|
||||
|
||||
const navigate = useNavigate();
|
||||
|
|
@ -130,7 +133,7 @@ const AuthContextProvider = ({
|
|||
if (userQuery.data) {
|
||||
setUser(userQuery.data);
|
||||
} else if (userQuery.isError) {
|
||||
doSetError((userQuery?.error as Error).message);
|
||||
doSetError((userQuery.error as Error).message);
|
||||
navigate('/login', { replace: true });
|
||||
}
|
||||
if (error && isAuthenticated) {
|
||||
|
|
@ -179,11 +182,12 @@ const AuthContextProvider = ({
|
|||
setError,
|
||||
roles: {
|
||||
[SystemRoles.USER]: userRole,
|
||||
[SystemRoles.ADMIN]: adminRole,
|
||||
},
|
||||
isAuthenticated,
|
||||
}),
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[user, error, isAuthenticated, token, userRole],
|
||||
[user, error, isAuthenticated, token, userRole, adminRole],
|
||||
);
|
||||
|
||||
return <AuthContext.Provider value={memoedValue}>{children}</AuthContext.Provider>;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { useMemo, useCallback } from 'react';
|
||||
import { SystemRoles, PermissionTypes, Permissions } from 'librechat-data-provider';
|
||||
import { PermissionTypes, Permissions } from 'librechat-data-provider';
|
||||
import { useAuthContext } from '~/hooks/AuthContext';
|
||||
|
||||
const useHasAccess = ({
|
||||
|
|
@ -13,9 +13,7 @@ const useHasAccess = ({
|
|||
|
||||
const checkAccess = useCallback(
|
||||
({ user, permissionType, permission }) => {
|
||||
if (isAuthenticated && user?.role === SystemRoles.ADMIN) {
|
||||
return true;
|
||||
} else if (isAuthenticated && user?.role != null && roles && roles[user.role]) {
|
||||
if (isAuthenticated && user?.role != null && roles && roles[user.role]) {
|
||||
return roles[user.role]?.[permissionType]?.[permission] === true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue