|
|
|
@ -24,12 +24,18 @@ |
|
|
|
((!p2.nodeKey && !p1.nodeKey) || p2.nodeKey === p1.nodeKey) |
|
|
|
|
|
|
|
const hasPermission = hasPerm => |
|
|
|
some(p => matchPermissions(p, hasPerm))(clonedLevel.permissions) |
|
|
|
clonedLevel.permissions.some(permission => |
|
|
|
matchPermissions(permission, hasPerm) |
|
|
|
) |
|
|
|
|
|
|
|
$: permissionMatrix = map(p => ({ |
|
|
|
permission: p, |
|
|
|
hasPermission: hasPermission(p), |
|
|
|
}))(allPermissions) |
|
|
|
$: permissionMatrix = allPermissions.map(permission => ({ |
|
|
|
permission, |
|
|
|
hasPermission: hasPermission(permission), |
|
|
|
})) |
|
|
|
|
|
|
|
$: allPermissionsSelected = permissionMatrix.every( |
|
|
|
permission => permission.hasPermission |
|
|
|
) |
|
|
|
|
|
|
|
const getPermissionName = perm => |
|
|
|
perm.nodeKey ? `${perm.type} - ${perm.nodeKey}` : perm.type |
|
|
|
@ -37,7 +43,7 @@ |
|
|
|
const save = () => { |
|
|
|
const newLevels = isNew |
|
|
|
? [...allLevels, clonedLevel] |
|
|
|
: [...filter(l => l.name !== level.name)(allLevels), clonedLevel] |
|
|
|
: [...allLevels.filter(l => l.name !== level.name), clonedLevel] |
|
|
|
|
|
|
|
errors = validateAccessLevels(hierarchy, actions, newLevels) |
|
|
|
|
|
|
|
@ -68,6 +74,15 @@ |
|
|
|
<Textbox label="Access Level Name" bind:text={clonedLevel.name} /> |
|
|
|
|
|
|
|
<h4 class="budibase__title--4">Permissions</h4> |
|
|
|
|
|
|
|
<Checkbox |
|
|
|
label={'Select All'} |
|
|
|
checked={allPermissionsSelected} |
|
|
|
on:change={ev => { |
|
|
|
permissionMatrix.forEach(permission => |
|
|
|
permissionChanged(permission.permission)(ev) |
|
|
|
) |
|
|
|
}} /> |
|
|
|
{#each permissionMatrix as permission} |
|
|
|
<div class="permission-container"> |
|
|
|
<Checkbox |
|
|
|
@ -92,6 +107,7 @@ |
|
|
|
|
|
|
|
<style> |
|
|
|
.permission-container { |
|
|
|
margin-top: 10px; |
|
|
|
margin-bottom: 10px; |
|
|
|
} |
|
|
|
</style> |
|
|
|
|