Add permission and role management features

This commit is contained in:
faris Aljohari
2024-12-16 00:19:14 -06:00
parent 57397e653a
commit 64027d3a16
22 changed files with 473 additions and 17 deletions
@@ -0,0 +1,43 @@
export const PermissionMapping = {
DEVICE_MANAGEMENT: {
DEVICE: ['SINGLE_CONTROL', 'VIEW', 'DELETE', 'UPDATE', 'BATCH_CONTROL'],
FIRMWARE: ['CONTROL', 'VIEW'],
},
COMMUNITY_MANAGEMENT: {
COMMUNITY: ['VIEW', 'ADD', 'UPDATE', 'DELETE'],
},
SPACE_MANAGEMENT: {
SPACE: [
'VIEW',
'ADD',
'UPDATE',
'DELETE',
'MODULE_ADD',
'ASSIGN_USER_TO_SPACE',
'DELETE_USER_FROM_SPACE',
],
SUBSPACE: [
'VIEW',
'ADD',
'UPDATE',
'DELETE',
'ASSIGN_DEVICE_TO_SUBSPACE',
'DELETE_DEVICE_FROM_SUBSPACE',
],
},
DEVICE_WIZARD: {
DEVICE_WIZARD: ['VIEW_DEVICE_WIZARD'],
SPACE_DEVICE: ['VIEW_DEVICE_IN_SPACE', 'ASSIGN_DEVICE_TO_SPACE'],
SUBSPACE_DEVICE: ['VIEW_DEVICE_IN_SUBSPACE', 'UPDATE_DEVICE_IN_SUBSPACE'],
},
AUTOMATION_MANAGEMENT: {
AUTOMATION: ['VIEW', 'ADD', 'UPDATE', 'DELETE', 'CONTROL'],
SCENES: ['VIEW', 'ADD', 'UPDATE', 'DELETE', 'CONTROL'],
},
VISITOR_PASSWORD_MANAGEMENT: {
VISITOR_PASSWORD: ['VIEW', 'ADD', 'UPDATE', 'DELETE'],
},
USER_MANAGEMENT: {
USER: ['ADD'],
},
};
@@ -0,0 +1,130 @@
import { RoleType } from './role.type.enum';
export const RolePermissions = {
[RoleType.SUPER_ADMIN]: [
'DEVICE_SINGLE_CONTROL',
'DEVICE_VIEW',
'DEVICE_DELETE',
'DEVICE_UPDATE',
'DEVICE_BATCH_CONTROL',
'COMMUNITY_VIEW',
'COMMUNITY_ADD',
'COMMUNITY_UPDATE',
'COMMUNITY_DELETE',
'FIRMWARE_CONTROL',
'SPACE_VIEW',
'SPACE_ADD',
'SPACE_UPDATE',
'SPACE_DELETE',
'SPACE_MODULE_ADD',
'ASSIGN_USER_TO_SPACE',
'DELETE_USER_FROM_SPACE',
'SUBSPACE_VIEW',
'SUBSPACE_ADD',
'SUBSPACE_UPDATE',
'SUBSPACE_DELETE',
'ASSIGN_DEVICE_TO_SUBSPACE',
'DELETE_DEVICE_FROM_SUBSPACE',
'VIEW_DEVICE_WIZARD',
'VIEW_DEVICE_IN_SUBSPACE',
'VIEW_DEVICE_IN_SPACE',
'UPDATE_DEVICE_IN_SUBSPACE',
'ASSIGN_DEVICE_TO_SPACE',
'AUTOMATION_VIEW',
'AUTOMATION_ADD',
'AUTOMATION_UPDATE',
'AUTOMATION_DELETE',
'AUTOMATION_CONTROL',
'SCENES_VIEW',
'SCENES_ADD',
'SCENES_UPDATE',
'SCENES_DELETE',
'SCENES_CONTROL',
'VISITOR_PASSWORD_VIEW',
'VISITOR_PASSWORD_ADD',
'USER_ADD',
],
[RoleType.ADMIN]: [
'DEVICE_SINGLE_CONTROL',
'DEVICE_VIEW',
'DEVICE_DELETE',
'DEVICE_UPDATE',
'DEVICE_BATCH_CONTROL',
'COMMUNITY_VIEW',
'COMMUNITY_ADD',
'COMMUNITY_UPDATE',
'COMMUNITY_DELETE',
'FIRMWARE_CONTROL',
'SPACE_VIEW',
'SPACE_ADD',
'SPACE_UPDATE',
'SPACE_DELETE',
'SPACE_MODULE_ADD',
'ASSIGN_USER_TO_SPACE',
'DELETE_USER_FROM_SPACE',
'SUBSPACE_VIEW',
'SUBSPACE_ADD',
'SUBSPACE_UPDATE',
'SUBSPACE_DELETE',
'ASSIGN_DEVICE_TO_SUBSPACE',
'DELETE_DEVICE_FROM_SUBSPACE',
'VIEW_DEVICE_WIZARD',
'VIEW_DEVICE_IN_SUBSPACE',
'VIEW_DEVICE_IN_SPACE',
'UPDATE_DEVICE_IN_SUBSPACE',
'ASSIGN_DEVICE_TO_SPACE',
'AUTOMATION_VIEW',
'AUTOMATION_ADD',
'AUTOMATION_UPDATE',
'AUTOMATION_DELETE',
'AUTOMATION_CONTROL',
'SCENES_VIEW',
'SCENES_ADD',
'SCENES_UPDATE',
'SCENES_DELETE',
'SCENES_CONTROL',
'VISITOR_PASSWORD_VIEW',
'VISITOR_PASSWORD_ADD',
'USER_ADD',
],
[RoleType.SPACE_MEMBER]: [
'DEVICE_SINGLE_CONTROL',
'DEVICE_VIEW',
'SPACE_VIEW',
'SUBSPACE_VIEW',
'VIEW_DEVICE_WIZARD',
'VIEW_DEVICE_IN_SUBSPACE',
'VIEW_DEVICE_IN_SPACE',
'AUTOMATION_VIEW',
'AUTOMATION_CONTROL',
'SCENES_VIEW',
'SCENES_CONTROL',
'VISITOR_PASSWORD_VIEW',
],
[RoleType.SPACE_OWNER]: [
'DEVICE_SINGLE_CONTROL',
'DEVICE_VIEW',
'FIRMWARE_CONTROL',
'FIRMWARE_VIEW',
'SPACE_VIEW',
'SPACE_MEMBER_ADD',
'SUBSPACE_VIEW',
'SUBSPACE_ADD',
'SUBSPACE_UPDATE',
'SUBSPACE_DELETE',
'AUTOMATION_VIEW',
'AUTOMATION_ADD',
'AUTOMATION_UPDATE',
'AUTOMATION_DELETE',
'AUTOMATION_CONTROL',
'SCENES_VIEW',
'SCENES_ADD',
'SCENES_UPDATE',
'SCENES_DELETE',
'SCENES_CONTROL',
'VISITOR_PASSWORD_VIEW',
'VISITOR_PASSWORD_ADD',
'VISITOR_PASSWORD_UPDATE',
'VISITOR_PASSWORD_DELETE',
],
};