refactor: rewrite useRole with RQ

This commit is contained in:
Rıdvan Akca
2024-03-15 12:38:11 +03:00
parent 40934a2c77
commit 3f9f17f584
8 changed files with 35 additions and 227 deletions

View File

@@ -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;
},
[]
[],
);
}