refactor(web): remove typescript

This commit is contained in:
Ali BARIN
2024-02-27 15:23:23 +00:00
parent 636870a075
commit b3ae2d2748
337 changed files with 2067 additions and 4997 deletions

View File

@@ -0,0 +1,45 @@
export function getRoleWithComputedPermissions(role) {
if (!role) return {};
const computedPermissions = role.permissions.reduce(
(computedPermissions, permission) => ({
...computedPermissions,
[permission.subject]: {
...(computedPermissions[permission.subject] || {}),
[permission.action]: {
conditions: Object.fromEntries(
permission.conditions.map((condition) => [condition, true])
),
value: true,
},
},
}),
{}
);
return {
...role,
computedPermissions,
};
}
export function getPermissions(computedPermissions) {
if (!computedPermissions) return [];
return Object.entries(computedPermissions).reduce(
(permissions, computedPermissionEntry) => {
const [subject, actionsWithConditions] = computedPermissionEntry;
for (const action in actionsWithConditions) {
const { value: permitted, conditions = {} } =
actionsWithConditions[action];
if (permitted) {
permissions.push({
action,
subject,
conditions: Object.entries(conditions)
.filter(([, enabled]) => enabled)
.map(([condition]) => condition),
});
}
}
return permissions;
},
[]
);
}