refactor: rewrite useRole with RQ
This commit is contained in:
@@ -1,20 +1,21 @@
|
||||
export function getRoleWithComputedPermissions(role) {
|
||||
if (!role) return {};
|
||||
const computedPermissions = role.permissions.reduce(
|
||||
const computedPermissions = role.permissions?.reduce(
|
||||
(computedPermissions, permission) => ({
|
||||
...computedPermissions,
|
||||
[permission.subject]: {
|
||||
...(computedPermissions[permission.subject] || {}),
|
||||
[permission.action]: {
|
||||
conditions: Object.fromEntries(
|
||||
permission.conditions.map((condition) => [condition, true])
|
||||
permission.conditions.map((condition) => [condition, true]),
|
||||
),
|
||||
value: true,
|
||||
},
|
||||
},
|
||||
}),
|
||||
{}
|
||||
{},
|
||||
);
|
||||
|
||||
return {
|
||||
...role,
|
||||
computedPermissions,
|
||||
@@ -22,6 +23,7 @@ export function getRoleWithComputedPermissions(role) {
|
||||
}
|
||||
export function getPermissions(computedPermissions) {
|
||||
if (!computedPermissions) return [];
|
||||
|
||||
return Object.entries(computedPermissions).reduce(
|
||||
(permissions, computedPermissionEntry) => {
|
||||
const [subject, actionsWithConditions] = computedPermissionEntry;
|
||||
@@ -40,6 +42,6 @@ export function getPermissions(computedPermissions) {
|
||||
}
|
||||
return permissions;
|
||||
},
|
||||
[]
|
||||
[],
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user