Skip to content

Commit f5f222f

Browse files
committedAug 13, 2023
feat: Override resourceDefinitions within context
Relates to https://issues.redhat.com/browse/ESSNTL-5239. Complement hasAccess function with another parameter that allows to override resource definitions check. The parameter ignores the value set in the RBACContext which provides more flexibility for some edge cases.
1 parent a7976ed commit f5f222f

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed
 

‎packages/components/src/RBACProvider/RBACProvider.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import {
1111
} from '@redhat-cloud-services/frontend-components-utilities/RBAC';
1212

1313
const hasAccessWithUserPermissions = (userPermissions: (Access | string)[], checkResourceDefinitions: boolean) => {
14-
return (requiredPermissions: (Access | string)[], checkAll?: boolean): boolean => {
14+
return (requiredPermissions: (Access | string)[], checkAll?: boolean, checkResourceDefinitionsOverride?: boolean): boolean => {
1515
return checkAll
16-
? hasAllPermissions(userPermissions, requiredPermissions, checkResourceDefinitions)
17-
: doesHavePermissions(userPermissions, requiredPermissions, checkResourceDefinitions);
16+
? hasAllPermissions(userPermissions, requiredPermissions, checkResourceDefinitionsOverride ?? checkResourceDefinitions)
17+
: doesHavePermissions(userPermissions, requiredPermissions, checkResourceDefinitionsOverride ?? checkResourceDefinitions);
1818
};
1919
};
2020

‎packages/utils/src/RBAC/RBAC.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ export interface UsePermissionsContextState {
135135
isLoading?: boolean;
136136
isOrgAdmin: boolean;
137137
permissions: (string | Access)[];
138-
hasAccess?: (requiredPermissions: (Access | string)[], checkAll?: boolean) => boolean;
138+
hasAccess?: (requiredPermissions: (Access | string)[], checkAll?: boolean, checkResourceDefinitionsOverride?: boolean) => boolean;
139139
}
140140

141141
export const initialPermissions: UsePermissionsContextState = {

‎packages/utils/src/RBACHook/RBACHook.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,16 @@ export function usePermissions(
3939
return permissions;
4040
}
4141

42-
export const usePermissionsWithContext = (requiredPermissions: (Access | string)[], checkAll?: boolean) => {
42+
export const usePermissionsWithContext = (
43+
requiredPermissions: (Access | string)[],
44+
checkAll?: boolean,
45+
checkResourceDefinitionsOverride?: boolean
46+
) => {
4347
const { hasAccess, ...permissionState } = useContext(RBACContext);
4448

4549
return {
4650
...permissionState,
47-
hasAccess: hasAccess?.(requiredPermissions, checkAll) || false,
51+
hasAccess: hasAccess?.(requiredPermissions, checkAll, checkResourceDefinitionsOverride) || false,
4852
};
4953
};
5054

0 commit comments

Comments
 (0)
Please sign in to comment.