@neohm/nestend 5.0.2 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -18
- package/dist/admin/controllers/admin.api.key.controller.d.ts +5 -0
- package/dist/admin/controllers/admin.api.key.controller.d.ts.map +1 -1
- package/dist/admin/controllers/admin.api.key.controller.js +22 -2
- package/dist/admin/controllers/admin.api.key.controller.js.map +1 -1
- package/dist/admin/controllers/admin.permission.controller.d.ts +17 -0
- package/dist/admin/controllers/admin.permission.controller.d.ts.map +1 -0
- package/dist/admin/controllers/admin.permission.controller.js +125 -0
- package/dist/admin/controllers/admin.permission.controller.js.map +1 -0
- package/dist/admin/controllers/admin.scope.controller.d.ts.map +1 -1
- package/dist/admin/controllers/admin.scope.controller.js +1 -1
- package/dist/admin/controllers/admin.scope.controller.js.map +1 -1
- package/dist/admin/controllers/system.role.controller.d.ts +17 -1
- package/dist/admin/controllers/system.role.controller.d.ts.map +1 -1
- package/dist/admin/controllers/system.role.controller.js +13 -4
- package/dist/admin/controllers/system.role.controller.js.map +1 -1
- package/dist/admin/dtos/add.api.key.dto.d.ts +1 -0
- package/dist/admin/dtos/add.api.key.dto.d.ts.map +1 -1
- package/dist/admin/dtos/add.api.key.dto.js +12 -0
- package/dist/admin/dtos/add.api.key.dto.js.map +1 -1
- package/dist/admin/dtos/add.permission.dto.d.ts +8 -0
- package/dist/admin/dtos/add.permission.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.permission.dto.js +53 -0
- package/dist/admin/dtos/add.permission.dto.js.map +1 -0
- package/dist/admin/dtos/add.system.role.dto.d.ts +3 -0
- package/dist/admin/dtos/add.system.role.dto.d.ts.map +1 -1
- package/dist/admin/dtos/add.system.role.dto.js +38 -1
- package/dist/admin/dtos/add.system.role.dto.js.map +1 -1
- package/dist/admin/dtos/api.key.roles.dto.d.ts +4 -0
- package/dist/admin/dtos/api.key.roles.dto.d.ts.map +1 -0
- package/dist/admin/dtos/api.key.roles.dto.js +30 -0
- package/dist/admin/dtos/api.key.roles.dto.js.map +1 -0
- package/dist/admin/dtos/permission.list.dto.d.ts +4 -0
- package/dist/admin/dtos/permission.list.dto.d.ts.map +1 -0
- package/dist/admin/dtos/permission.list.dto.js +8 -0
- package/dist/admin/dtos/permission.list.dto.js.map +1 -0
- package/dist/admin/es6.classes.d.ts +9 -4
- package/dist/admin/es6.classes.d.ts.map +1 -1
- package/dist/admin/es6.classes.js +14 -0
- package/dist/admin/es6.classes.js.map +1 -1
- package/dist/admin/libraries/api.key.data.processor.d.ts +1 -0
- package/dist/admin/libraries/api.key.data.processor.d.ts.map +1 -1
- package/dist/admin/libraries/api.key.data.processor.js +23 -1
- package/dist/admin/libraries/api.key.data.processor.js.map +1 -1
- package/dist/admin/libraries/api.key.list.processor.d.ts.map +1 -1
- package/dist/admin/libraries/api.key.list.processor.js +18 -1
- package/dist/admin/libraries/api.key.list.processor.js.map +1 -1
- package/dist/admin/libraries/api.key.roles.data.processor.d.ts +15 -0
- package/dist/admin/libraries/api.key.roles.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/api.key.roles.data.processor.js +49 -0
- package/dist/admin/libraries/api.key.roles.data.processor.js.map +1 -0
- package/dist/admin/libraries/client.membership.data.processor.d.ts.map +1 -1
- package/dist/admin/libraries/client.membership.data.processor.js +4 -1
- package/dist/admin/libraries/client.membership.data.processor.js.map +1 -1
- package/dist/admin/libraries/client.user.data.processor.d.ts.map +1 -1
- package/dist/admin/libraries/client.user.data.processor.js +5 -2
- package/dist/admin/libraries/client.user.data.processor.js.map +1 -1
- package/dist/admin/libraries/permission.data.processor.d.ts +16 -0
- package/dist/admin/libraries/permission.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/permission.data.processor.js +68 -0
- package/dist/admin/libraries/permission.data.processor.js.map +1 -0
- package/dist/admin/libraries/permission.list.processor.d.ts +11 -0
- package/dist/admin/libraries/permission.list.processor.d.ts.map +1 -0
- package/dist/admin/libraries/permission.list.processor.js +42 -0
- package/dist/admin/libraries/permission.list.processor.js.map +1 -0
- package/dist/admin/libraries/role.list.processor.d.ts.map +1 -1
- package/dist/admin/libraries/role.list.processor.js +14 -1
- package/dist/admin/libraries/role.list.processor.js.map +1 -1
- package/dist/admin/libraries/system.role.data.processor.d.ts +4 -0
- package/dist/admin/libraries/system.role.data.processor.d.ts.map +1 -1
- package/dist/admin/libraries/system.role.data.processor.js +68 -5
- package/dist/admin/libraries/system.role.data.processor.js.map +1 -1
- package/dist/admin/utilities/api.key.role.policy.d.ts +4 -0
- package/dist/admin/utilities/api.key.role.policy.d.ts.map +1 -0
- package/dist/admin/utilities/api.key.role.policy.js +30 -0
- package/dist/admin/utilities/api.key.role.policy.js.map +1 -0
- package/dist/admin/utilities/scope.grants.d.ts.map +1 -1
- package/dist/admin/utilities/scope.grants.js +6 -1
- package/dist/admin/utilities/scope.grants.js.map +1 -1
- package/dist/admin/utilities/tenant.role.policy.d.ts +4 -5
- package/dist/admin/utilities/tenant.role.policy.d.ts.map +1 -1
- package/dist/admin/utilities/tenant.role.policy.js +7 -6
- package/dist/admin/utilities/tenant.role.policy.js.map +1 -1
- package/dist/auth/controllers/auth.controller.d.ts.map +1 -1
- package/dist/auth/controllers/auth.controller.js +5 -2
- package/dist/auth/controllers/auth.controller.js.map +1 -1
- package/dist/auth/controllers/tenant.invitation.controller.d.ts.map +1 -1
- package/dist/auth/controllers/tenant.invitation.controller.js +15 -16
- package/dist/auth/controllers/tenant.invitation.controller.js.map +1 -1
- package/dist/auth/controllers/tenant.member.controller.d.ts.map +1 -1
- package/dist/auth/controllers/tenant.member.controller.js +5 -5
- package/dist/auth/controllers/tenant.member.controller.js.map +1 -1
- package/dist/auth/decorators/api.key.scopes.decorator.d.ts +4 -0
- package/dist/auth/decorators/api.key.scopes.decorator.d.ts.map +1 -1
- package/dist/auth/decorators/api.key.scopes.decorator.js +7 -1
- package/dist/auth/decorators/api.key.scopes.decorator.js.map +1 -1
- package/dist/auth/entities/api.key.role.entity.d.ts +13 -0
- package/dist/auth/entities/api.key.role.entity.d.ts.map +1 -0
- package/dist/auth/entities/api.key.role.entity.js +51 -0
- package/dist/auth/entities/api.key.role.entity.js.map +1 -0
- package/dist/auth/entities/permission.entity.d.ts +10 -0
- package/dist/auth/entities/permission.entity.d.ts.map +1 -0
- package/dist/auth/entities/permission.entity.js +43 -0
- package/dist/auth/entities/permission.entity.js.map +1 -0
- package/dist/auth/entities/role.permission.entity.d.ts +10 -0
- package/dist/auth/entities/role.permission.entity.d.ts.map +1 -0
- package/dist/auth/entities/role.permission.entity.js +41 -0
- package/dist/auth/entities/role.permission.entity.js.map +1 -0
- package/dist/auth/entities/system.role.entity.d.ts +6 -0
- package/dist/auth/entities/system.role.entity.d.ts.map +1 -1
- package/dist/auth/entities/system.role.entity.js +20 -0
- package/dist/auth/entities/system.role.entity.js.map +1 -1
- package/dist/auth/enums/role.default.enum.d.ts +8 -0
- package/dist/auth/enums/role.default.enum.d.ts.map +1 -0
- package/dist/auth/enums/role.default.enum.js +13 -0
- package/dist/auth/enums/role.default.enum.js.map +1 -0
- package/dist/auth/enums/tenant.role.enum.d.ts.map +1 -1
- package/dist/auth/enums/tenant.role.enum.js.map +1 -1
- package/dist/auth/guards/api.key.guard.d.ts.map +1 -1
- package/dist/auth/guards/api.key.guard.js +24 -8
- package/dist/auth/guards/api.key.guard.js.map +1 -1
- package/dist/auth/middlewares/api.key.middleware.d.ts.map +1 -1
- package/dist/auth/middlewares/api.key.middleware.js +1 -1
- package/dist/auth/middlewares/api.key.middleware.js.map +1 -1
- package/dist/auth/processors/tenant.invitation.data.processor.d.ts +3 -1
- package/dist/auth/processors/tenant.invitation.data.processor.d.ts.map +1 -1
- package/dist/auth/processors/tenant.invitation.data.processor.js +6 -2
- package/dist/auth/processors/tenant.invitation.data.processor.js.map +1 -1
- package/dist/auth/processors/tenant.invitation.list.processor.d.ts +2 -1
- package/dist/auth/processors/tenant.invitation.list.processor.d.ts.map +1 -1
- package/dist/auth/processors/tenant.invitation.list.processor.js +4 -1
- package/dist/auth/processors/tenant.invitation.list.processor.js.map +1 -1
- package/dist/auth/services/api.key.service.d.ts +10 -2
- package/dist/auth/services/api.key.service.d.ts.map +1 -1
- package/dist/auth/services/api.key.service.js +84 -7
- package/dist/auth/services/api.key.service.js.map +1 -1
- package/dist/auth/services/auth.service.d.ts +10 -5
- package/dist/auth/services/auth.service.d.ts.map +1 -1
- package/dist/auth/services/auth.service.js +63 -49
- package/dist/auth/services/auth.service.js.map +1 -1
- package/dist/auth/services/role.service.d.ts +3 -1
- package/dist/auth/services/role.service.d.ts.map +1 -1
- package/dist/auth/services/role.service.js +37 -0
- package/dist/auth/services/role.service.js.map +1 -1
- package/dist/auth/services/scope.service.d.ts +1 -0
- package/dist/auth/services/scope.service.d.ts.map +1 -1
- package/dist/auth/services/scope.service.js +32 -0
- package/dist/auth/services/scope.service.js.map +1 -1
- package/dist/auth/services/tenant.invitation.service.d.ts +6 -4
- package/dist/auth/services/tenant.invitation.service.d.ts.map +1 -1
- package/dist/auth/services/tenant.invitation.service.js +30 -6
- package/dist/auth/services/tenant.invitation.service.js.map +1 -1
- package/dist/auth/services/tenant.membership.service.d.ts +3 -1
- package/dist/auth/services/tenant.membership.service.d.ts.map +1 -1
- package/dist/auth/services/tenant.membership.service.js +22 -3
- package/dist/auth/services/tenant.membership.service.js.map +1 -1
- package/dist/auth/types/api.key.types.d.ts +6 -0
- package/dist/auth/types/api.key.types.d.ts.map +1 -1
- package/dist/auth/types/auth.types.d.ts +2 -0
- package/dist/auth/types/auth.types.d.ts.map +1 -1
- package/dist/auth/types/rbac.types.d.ts +35 -0
- package/dist/auth/types/rbac.types.d.ts.map +1 -0
- package/dist/auth/types/rbac.types.js +3 -0
- package/dist/auth/types/rbac.types.js.map +1 -0
- package/dist/auth/utilities/grant.authority.d.ts +14 -0
- package/dist/auth/utilities/grant.authority.d.ts.map +1 -0
- package/dist/auth/utilities/grant.authority.js +38 -0
- package/dist/auth/utilities/grant.authority.js.map +1 -0
- package/dist/auth/utilities/role.catalogue.d.ts +10 -0
- package/dist/auth/utilities/role.catalogue.d.ts.map +1 -0
- package/dist/auth/utilities/role.catalogue.js +81 -0
- package/dist/auth/utilities/role.catalogue.js.map +1 -0
- package/dist/auth/utilities/role.hierarchy.d.ts +31 -0
- package/dist/auth/utilities/role.hierarchy.d.ts.map +1 -0
- package/dist/auth/utilities/role.hierarchy.js +149 -0
- package/dist/auth/utilities/role.hierarchy.js.map +1 -0
- package/dist/auth/utilities/scope.cascade.d.ts +2 -0
- package/dist/auth/utilities/scope.cascade.d.ts.map +1 -1
- package/dist/auth/utilities/scope.cascade.js +44 -2
- package/dist/auth/utilities/scope.cascade.js.map +1 -1
- package/dist/auth/utilities/tenant.access.d.ts.map +1 -1
- package/dist/auth/utilities/tenant.access.js +10 -3
- package/dist/auth/utilities/tenant.access.js.map +1 -1
- package/dist/constants/entity.constants.d.ts +3 -0
- package/dist/constants/entity.constants.d.ts.map +1 -1
- package/dist/constants/entity.constants.js +3 -0
- package/dist/constants/entity.constants.js.map +1 -1
- package/dist/constants/entity.maps.d.ts +6 -0
- package/dist/constants/entity.maps.d.ts.map +1 -1
- package/dist/constants/entity.maps.js +6 -0
- package/dist/constants/entity.maps.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -9
- package/dist/index.js.map +1 -1
- package/dist/migrations/1749600000004.CreateSysRolesTable.d.ts.map +1 -1
- package/dist/migrations/1749600000004.CreateSysRolesTable.js +7 -0
- package/dist/migrations/1749600000004.CreateSysRolesTable.js.map +1 -1
- package/dist/migrations/1749600000025.CreateSysScopesTable.d.ts +3 -0
- package/dist/migrations/1749600000025.CreateSysScopesTable.d.ts.map +1 -1
- package/dist/migrations/1749600000025.CreateSysScopesTable.js +16 -0
- package/dist/migrations/1749600000025.CreateSysScopesTable.js.map +1 -1
- package/dist/migrations/1749600000033.CreateSysPermissionsTable.d.ts +6 -0
- package/dist/migrations/1749600000033.CreateSysPermissionsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000033.CreateSysPermissionsTable.js +29 -0
- package/dist/migrations/1749600000033.CreateSysPermissionsTable.js.map +1 -0
- package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.d.ts +6 -0
- package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.js +32 -0
- package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.js.map +1 -0
- package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.d.ts +6 -0
- package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.d.ts.map +1 -0
- package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.js +38 -0
- package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.js.map +1 -0
- package/dist/migrations/1749600000036.SeedGlobalAdminRole.d.ts +6 -0
- package/dist/migrations/1749600000036.SeedGlobalAdminRole.d.ts.map +1 -0
- package/dist/migrations/1749600000036.SeedGlobalAdminRole.js +25 -0
- package/dist/migrations/1749600000036.SeedGlobalAdminRole.js.map +1 -0
- package/package.json +1 -1
- package/dist/auth/enums/role.tier.enum.d.ts +0 -6
- package/dist/auth/enums/role.tier.enum.d.ts.map +0 -1
- package/dist/auth/enums/role.tier.enum.js +0 -10
- package/dist/auth/enums/role.tier.enum.js.map +0 -1
|
@@ -11,6 +11,7 @@ const access_revocation_1 = require("../../auth/utilities/access.revocation");
|
|
|
11
11
|
const tenant_user_entity_1 = require("../../auth/entities/tenant.user.entity");
|
|
12
12
|
const user_role_entity_1 = require("../../auth/entities/user.role.entity");
|
|
13
13
|
const tenant_access_1 = require("../../auth/utilities/tenant.access");
|
|
14
|
+
const role_catalogue_1 = require("../../auth/utilities/role.catalogue");
|
|
14
15
|
const system_role_entity_1 = require("../../auth/entities/system.role.entity");
|
|
15
16
|
const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
|
|
16
17
|
const entity_constants_1 = require("../../constants/entity.constants");
|
|
@@ -88,10 +89,12 @@ class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
|
|
|
88
89
|
const heldInTenant = held
|
|
89
90
|
.filter((grant) => grant.tenant_id === this.payload.tenant_id)
|
|
90
91
|
.map((grant) => grant.role_id);
|
|
92
|
+
const hierarchy = await role_catalogue_1.RoleCatalogue.load(user_entity_1.UserEntity.getRepository().manager);
|
|
91
93
|
const required = tenant_role_policy_1.TenantRolePolicy.tenantUserSaveRole({
|
|
92
|
-
grantsPrivileged: tenant_role_policy_1.TenantRolePolicy.newPrivilegedGrants(roles, heldInTenant)
|
|
94
|
+
grantsPrivileged: tenant_role_policy_1.TenantRolePolicy.newPrivilegedGrants(roles, hierarchy, heldInTenant)
|
|
95
|
+
.length > 0,
|
|
93
96
|
emailChanged: tenant_role_policy_1.TenantRolePolicy.emailChanged(this.existing?.email, this.existing ? this.payload.email : undefined),
|
|
94
|
-
holdsPrivileged: held.some((grant) => tenant_role_policy_1.TenantRolePolicy.isPrivileged(grant.role
|
|
97
|
+
holdsPrivileged: held.some((grant) => tenant_role_policy_1.TenantRolePolicy.isPrivileged(grant.role, hierarchy)),
|
|
95
98
|
});
|
|
96
99
|
admin_access_service_1.AdminAccessService.assertHolds(this.access, required, 'Granting a privileged tenant role, or changing the email of an account holding one,');
|
|
97
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.user.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/client.user.data.processor.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,qCAA4C;AAC5C,+DAA0D;AAC1D,iEAA6D;AAC7D,oEAA2D;AAI3D,wEAAkE;AAClE,8EAA0E;AAG1E,+EAA0E;AAC1E,2EAAsE;AACtE,sEAAkE;AAClE,+EAA0E;AAE1E,4EAAmE;AACnE,uEAAuE;AACvE,2EAAsE;AACtE,0DAAsD;AACtD,wEAAmE;AAmBnE,MAAa,uBAAwB,SAAQ,uCAAiB;IAO5D,YACmB,MAAgC,EAChC,aAA4B,EAC5B,0BAAsD;QAEvE,KAAK,EAAE,CAAC;QAJS,WAAM,GAAN,MAAM,CAA0B;QAChC,kBAAa,GAAb,aAAa,CAAe;QAC5B,+BAA0B,GAA1B,0BAA0B,CAA4B;QARxD,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAE3D,WAAM,GAAwB,IAAI,CAAC;QACnC,aAAQ,GAAsB,IAAI,CAAC;IAQ3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAE/B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,MAAM,wBAAU,CAAC,OAAO,CAAC;gBACvC,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAQ,CAAC,WAAW,EAAE;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAChB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAGnE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,eAAe,CACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,SAAS,EACT,MAAM,CACP,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEzE,IAAI,CAAC,iCAAiC,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;QAEnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAc;QAC7C,MAAM,QAAQ,GAAG,MAAM,qCAAgB,CAAC,QAAQ,CAAC;YAC/C,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YACX,IAAI,CAAC,cAAc,CACjB,WAAW,EACX,0CAA0C,CAC3C,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAA6B,EAC7B,KAAa;QAEb,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,MAAM,qCAAgB,CAAC,IAAI,CAAC;YACxC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;SAClD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3D,KAAK,MAAM,MAAM,IAAI,aAAa;YAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,MAAM,yBAAyB,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAGO,KAAK,CAAC,SAAS,CAAC,KAAyB;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;YACxB,CAAC,CAAC,MAAM,iCAAc,CAAC,IAAI,CAAC;gBACxB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACpC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aAC1B,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,YAAY,GAAG,IAAI;aACtB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;aAC7D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,qCAAgB,CAAC,kBAAkB,CAAC;YACnD,gBAAgB,EACd,qCAAgB,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"client.user.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/client.user.data.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { CatalogueDataProcessor } from './catalogue.data.processor';
|
|
3
|
+
import { AdminAuthenticatedAccess } from '../../auth/types/auth.types';
|
|
4
|
+
import { PermissionEntity } from '../../auth/entities/permission.entity';
|
|
5
|
+
import { AddPermissionDto } from '../dtos/add.permission.dto';
|
|
6
|
+
export declare class PermissionDataProcessor extends CatalogueDataProcessor<PermissionEntity> {
|
|
7
|
+
private readonly access;
|
|
8
|
+
protected readonly label = "permission";
|
|
9
|
+
protected payload: AddPermissionDto;
|
|
10
|
+
constructor(access: AdminAuthenticatedAccess);
|
|
11
|
+
protected repository(): Repository<PermissionEntity>;
|
|
12
|
+
process(payload: AddPermissionDto): Promise<PermissionEntity>;
|
|
13
|
+
private validate;
|
|
14
|
+
private set;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=permission.data.processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/permission.data.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAIzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAc9D,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,gBAAgB,CAAC;IAIvE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,SAAS,CAAC,QAAQ,CAAC,KAAK,gBAAgB;IACxC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEP,MAAM,EAAE,wBAAwB;IAI7D,SAAS,CAAC,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAMrD,QAAQ;YAcR,GAAG;CA0BlB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionDataProcessor = void 0;
|
|
4
|
+
const catalogue_data_processor_1 = require("./catalogue.data.processor");
|
|
5
|
+
const permission_entity_1 = require("../../auth/entities/permission.entity");
|
|
6
|
+
const scope_entity_1 = require("../../auth/entities/scope.entity");
|
|
7
|
+
const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
|
|
8
|
+
const entity_constants_1 = require("../../constants/entity.constants");
|
|
9
|
+
const admin_audit_1 = require("../utilities/admin.audit");
|
|
10
|
+
const AUDITED = [
|
|
11
|
+
'scope_id',
|
|
12
|
+
'identifier',
|
|
13
|
+
'name',
|
|
14
|
+
'description',
|
|
15
|
+
];
|
|
16
|
+
class PermissionDataProcessor extends catalogue_data_processor_1.CatalogueDataProcessor {
|
|
17
|
+
constructor(access) {
|
|
18
|
+
super();
|
|
19
|
+
this.access = access;
|
|
20
|
+
this.label = 'permission';
|
|
21
|
+
}
|
|
22
|
+
repository() {
|
|
23
|
+
return permission_entity_1.PermissionEntity.getRepository();
|
|
24
|
+
}
|
|
25
|
+
async process(payload) {
|
|
26
|
+
this.payload = payload;
|
|
27
|
+
await this.validate();
|
|
28
|
+
return this.set();
|
|
29
|
+
}
|
|
30
|
+
async validate() {
|
|
31
|
+
const body = this.payload;
|
|
32
|
+
await this.loadExisting(body.id);
|
|
33
|
+
this.assertImmutable('identifier', body.identifier);
|
|
34
|
+
this.assertImmutable('scope_id', body.scope_id);
|
|
35
|
+
if (this.isNew) {
|
|
36
|
+
await this.assertUnique('identifier', body.identifier, body.id);
|
|
37
|
+
if (!(await scope_entity_1.ScopeEntity.existsBy({ id: body.scope_id })))
|
|
38
|
+
this.setColumnError('scope_id', 'No scope exists for this id');
|
|
39
|
+
}
|
|
40
|
+
this.raiseExceptionOnValidationFailure();
|
|
41
|
+
}
|
|
42
|
+
async set() {
|
|
43
|
+
const body = this.payload;
|
|
44
|
+
const actor = this.access.user;
|
|
45
|
+
const before = admin_audit_1.AdminAudit.pick(this.existing, AUDITED);
|
|
46
|
+
const permission = this.existing ?? permission_entity_1.PermissionEntity.create({ created_by: actor.id });
|
|
47
|
+
if (this.existing)
|
|
48
|
+
permission.updated_by = actor.id;
|
|
49
|
+
permission.scope_id = body.scope_id;
|
|
50
|
+
permission.identifier = body.identifier;
|
|
51
|
+
permission.name = body.name;
|
|
52
|
+
permission.description = body.description ?? permission.description ?? '';
|
|
53
|
+
await this.transaction(async (trx) => {
|
|
54
|
+
await trx.save(permission);
|
|
55
|
+
await admin_audit_1.AdminAudit.record(trx, {
|
|
56
|
+
actor,
|
|
57
|
+
sourceType: entity_constants_1.baseEntityConstants.permission,
|
|
58
|
+
sourceId: permission.id,
|
|
59
|
+
action: before ? audit_action_enum_1.AuditAction.UPDATE : audit_action_enum_1.AuditAction.CREATE,
|
|
60
|
+
oldValue: before,
|
|
61
|
+
newValue: admin_audit_1.AdminAudit.pick(permission, AUDITED),
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
return permission;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.PermissionDataProcessor = PermissionDataProcessor;
|
|
68
|
+
//# sourceMappingURL=permission.data.processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/permission.data.processor.ts"],"names":[],"mappings":";;;AACA,yEAAoE;AAEpE,6EAAyE;AACzE,mEAA+D;AAC/D,4EAAmE;AACnE,uEAAuE;AAEvE,0DAAsD;AAEtD,MAAM,OAAO,GAA+B;IAC1C,UAAU;IACV,YAAY;IACZ,MAAM;IACN,aAAa;CACd,CAAC;AAMF,MAAa,uBAAwB,SAAQ,iDAAwC;IAInF,YAA6B,MAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,WAAM,GAAN,MAAM,CAA0B;QAH1C,UAAK,GAAG,YAAY,CAAC;IAKxC,CAAC;IAES,UAAU;QAClB,OAAO,oCAAgB,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,CAAC,MAAM,0BAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,iCAAiC,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,wBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,UAAU,GACd,IAAI,CAAC,QAAQ,IAAI,oCAAgB,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAErE,IAAI,IAAI,CAAC,QAAQ;YAAE,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;QACpD,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACxC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;QAE1E,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACnC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,MAAM,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC3B,KAAK;gBACL,UAAU,EAAE,sCAAmB,CAAC,UAAU;gBAC1C,QAAQ,EAAE,UAAU,CAAC,EAAE;gBACvB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,+BAAW,CAAC,MAAM,CAAC,CAAC,CAAC,+BAAW,CAAC,MAAM;gBACxD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,wBAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA1DD,0DA0DC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CommonListProcessor } from '../../common/libraries/common.list.processor';
|
|
2
|
+
import { CommonListFilterConfig } from '../../common/types/list.types';
|
|
3
|
+
import { ListFilterService } from '../../common/services/list.filter.service';
|
|
4
|
+
import { PermissionListDto } from '../dtos/permission.list.dto';
|
|
5
|
+
export declare class PermissionListProcessor extends CommonListProcessor {
|
|
6
|
+
protected readonly listFilterService: ListFilterService;
|
|
7
|
+
protected config: CommonListFilterConfig;
|
|
8
|
+
constructor(listFilterService: ListFilterService);
|
|
9
|
+
process(payload: PermissionListDto): Promise<import("../../common/types/list.types").CommonListResult>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=permission.list.processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.list.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/permission.list.processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,qBAAa,uBAAwB,SAAQ,mBAAmB;IA0BlD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAzBnE,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAuBtC;gBAE6B,iBAAiB,EAAE,iBAAiB;IAI7D,OAAO,CAAC,OAAO,EAAE,iBAAiB;CAIzC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionListProcessor = void 0;
|
|
4
|
+
const sort_direction_enum_1 = require("../../common/enums/sort.direction.enum");
|
|
5
|
+
const filter_value_type_enum_1 = require("../../common/enums/filter.value.type.enum");
|
|
6
|
+
const common_list_processor_1 = require("../../common/libraries/common.list.processor");
|
|
7
|
+
class PermissionListProcessor extends common_list_processor_1.CommonListProcessor {
|
|
8
|
+
constructor(listFilterService) {
|
|
9
|
+
super();
|
|
10
|
+
this.listFilterService = listFilterService;
|
|
11
|
+
this.config = {
|
|
12
|
+
query: `sys_permissions p
|
|
13
|
+
left join sys_scopes s on s.id = p.scope_id`,
|
|
14
|
+
columns: [
|
|
15
|
+
{ key: 'p.id', identifier: 'id', type: filter_value_type_enum_1.FilterValueTypeEnum.UUID },
|
|
16
|
+
{ key: 'p.identifier', identifier: 'identifier', searchable: true },
|
|
17
|
+
{ key: 'p.name', identifier: 'name', searchable: true },
|
|
18
|
+
{ key: 'p.description', identifier: 'description', searchable: true },
|
|
19
|
+
{
|
|
20
|
+
key: 'p.scope_id',
|
|
21
|
+
identifier: 'scope_id',
|
|
22
|
+
type: filter_value_type_enum_1.FilterValueTypeEnum.UUID,
|
|
23
|
+
},
|
|
24
|
+
{ key: 's.identifier', identifier: 'scope_identifier', searchable: true },
|
|
25
|
+
{ key: 's.name', identifier: 'scope_name' },
|
|
26
|
+
{
|
|
27
|
+
key: 'p.created_at',
|
|
28
|
+
identifier: 'created_at',
|
|
29
|
+
type: filter_value_type_enum_1.FilterValueTypeEnum.DATETIME,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
predicates: ['p.deleted_at is null'],
|
|
33
|
+
defaultSort: { field: 'identifier', direction: sort_direction_enum_1.SortDirection.ASC },
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async process(payload) {
|
|
37
|
+
this.payload = payload;
|
|
38
|
+
return this.handle();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.PermissionListProcessor = PermissionListProcessor;
|
|
42
|
+
//# sourceMappingURL=permission.list.processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/permission.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;AAMnF,MAAa,uBAAwB,SAAQ,2CAAmB;IA0B9D,YAA+B,iBAAoC;QACjE,KAAK,EAAE,CAAC;QADqB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAzBzD,WAAM,GAA2B;YACzC,KAAK,EAAE;kDACuC;YAC9C,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,4CAAmB,CAAC,IAAI,EAAE;gBACjE,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;gBACnE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvD,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;gBACrE;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,4CAAmB,CAAC,IAAI;iBAC/B;gBACD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;gBACzE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE;gBAC3C;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;aACF;YACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,mCAAa,CAAC,GAAG,EAAE;SACnE,CAAC;IAIF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA0B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AAlCD,0DAkCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.list.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"role.list.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,qBAAa,iBAAkB,SAAQ,mBAAmB;IAoC5C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAnCnE,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAiCtC;gBAE6B,iBAAiB,EAAE,iBAAiB;IAI7D,OAAO,CAAC,OAAO,EAAE,WAAW;CAInC"}
|
|
@@ -9,12 +9,25 @@ class RoleListProcessor extends common_list_processor_1.CommonListProcessor {
|
|
|
9
9
|
super();
|
|
10
10
|
this.listFilterService = listFilterService;
|
|
11
11
|
this.config = {
|
|
12
|
-
query:
|
|
12
|
+
query: `sys_roles r
|
|
13
|
+
left join sys_scopes s on s.id = r.scope_id`,
|
|
13
14
|
columns: [
|
|
14
15
|
{ key: 'r.id', identifier: 'id', type: filter_value_type_enum_1.FilterValueTypeEnum.UUID },
|
|
15
16
|
{ key: 'r.identifier', identifier: 'identifier', searchable: true },
|
|
16
17
|
{ key: 'r.name', identifier: 'name', searchable: true },
|
|
17
18
|
{ key: 'r.description', identifier: 'description', searchable: true },
|
|
19
|
+
{
|
|
20
|
+
key: 'r.scope_id',
|
|
21
|
+
identifier: 'scope_id',
|
|
22
|
+
type: filter_value_type_enum_1.FilterValueTypeEnum.UUID,
|
|
23
|
+
},
|
|
24
|
+
{ key: 's.identifier', identifier: 'scope_identifier', searchable: true },
|
|
25
|
+
{ key: 's.name', identifier: 'scope_name' },
|
|
26
|
+
{
|
|
27
|
+
key: 'r.priority',
|
|
28
|
+
identifier: 'priority',
|
|
29
|
+
type: filter_value_type_enum_1.FilterValueTypeEnum.NUMBER,
|
|
30
|
+
},
|
|
18
31
|
{
|
|
19
32
|
key: 'r.is_active',
|
|
20
33
|
identifier: 'is_active',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;
|
|
1
|
+
{"version":3,"file":"role.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;AAUnF,MAAa,iBAAkB,SAAQ,2CAAmB;IAoCxD,YAA+B,iBAAoC;QACjE,KAAK,EAAE,CAAC;QADqB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAnCzD,WAAM,GAA2B;YACzC,KAAK,EAAE;kDACuC;YAC9C,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,4CAAmB,CAAC,IAAI,EAAE;gBACjE,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;gBACnE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvD,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;gBACrE;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,4CAAmB,CAAC,IAAI;iBAC/B;gBACD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;gBACzE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE;gBAC3C;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,4CAAmB,CAAC,MAAM;iBACjC;gBACD;oBACE,GAAG,EAAE,aAAa;oBAClB,UAAU,EAAE,WAAW;oBACvB,IAAI,EAAE,4CAAmB,CAAC,OAAO;iBAClC;gBACD;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;aACF;YACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mCAAa,CAAC,GAAG,EAAE;SAC7D,CAAC;IAIF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AA5CD,8CA4CC"}
|
|
@@ -11,6 +11,10 @@ export declare class SystemRoleDataProcessor extends CatalogueDataProcessor<Syst
|
|
|
11
11
|
protected repository(): Repository<SystemRoleEntity>;
|
|
12
12
|
process(payload: AddSystemRoleDto): Promise<SystemRoleEntity>;
|
|
13
13
|
private validate;
|
|
14
|
+
private get scopeId();
|
|
15
|
+
private get priority();
|
|
16
|
+
private movesScopeTop;
|
|
17
|
+
private validatePermissions;
|
|
14
18
|
private set;
|
|
15
19
|
}
|
|
16
20
|
//# sourceMappingURL=system.role.data.processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.role.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"system.role.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,UAAU,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAQ1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAsB/D,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,gBAAgB,CAAC;IAIvE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,SAAS,CAAC,QAAQ,CAAC,KAAK,UAAU;IAClC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEP,MAAM,EAAE,wBAAwB;IAI7D,SAAS,CAAC,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAMrD,QAAQ;IAgCtB,OAAO,KAAK,OAAO,GAIlB;IAED,OAAO,KAAK,QAAQ,GAMnB;YAGa,aAAa;YAgBb,mBAAmB;YAiCnB,GAAG;CAsClB"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SystemRoleDataProcessor = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
4
5
|
const catalogue_data_processor_1 = require("./catalogue.data.processor");
|
|
5
6
|
const system_role_entity_1 = require("../../auth/entities/system.role.entity");
|
|
7
|
+
const permission_entity_1 = require("../../auth/entities/permission.entity");
|
|
8
|
+
const scope_entity_1 = require("../../auth/entities/scope.entity");
|
|
9
|
+
const role_service_1 = require("../../auth/services/role.service");
|
|
10
|
+
const role_default_enum_1 = require("../../auth/enums/role.default.enum");
|
|
6
11
|
const global_admin_roles_enum_1 = require("../../auth/enums/global.admin.roles.enum");
|
|
7
12
|
const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
|
|
8
13
|
const entity_constants_1 = require("../../constants/entity.constants");
|
|
9
14
|
const admin_access_service_1 = require("../services/admin.access.service");
|
|
10
15
|
const admin_audit_1 = require("../utilities/admin.audit");
|
|
11
|
-
const tenant_role_policy_1 = require("../utilities/tenant.role.policy");
|
|
12
16
|
const AUDITED = [
|
|
13
17
|
'identifier',
|
|
14
18
|
'name',
|
|
15
19
|
'description',
|
|
16
20
|
'is_active',
|
|
21
|
+
'scope_id',
|
|
22
|
+
'priority',
|
|
17
23
|
];
|
|
18
24
|
class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataProcessor {
|
|
19
25
|
constructor(access) {
|
|
@@ -32,17 +38,67 @@ class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataPr
|
|
|
32
38
|
async validate() {
|
|
33
39
|
const body = this.payload;
|
|
34
40
|
await this.loadExisting(body.id);
|
|
35
|
-
if (tenant_role_policy_1.TenantRolePolicy.isReserved(body.identifier) ||
|
|
36
|
-
tenant_role_policy_1.TenantRolePolicy.isReserved(this.existing?.identifier))
|
|
37
|
-
this.setColumnError('identifier', 'This role identifier is reserved and cannot be managed through the API');
|
|
38
41
|
this.assertImmutable('identifier', body.identifier);
|
|
39
|
-
|
|
42
|
+
this.assertImmutable('scope_id', body.scope_id);
|
|
43
|
+
if (this.isNew) {
|
|
40
44
|
await this.assertUnique('identifier', body.identifier, body.id);
|
|
45
|
+
if (body.scope_id && !(await scope_entity_1.ScopeEntity.existsBy({ id: body.scope_id })))
|
|
46
|
+
this.setColumnError('scope_id', 'No scope exists for this id');
|
|
47
|
+
}
|
|
48
|
+
await this.validatePermissions();
|
|
41
49
|
this.raiseExceptionOnValidationFailure();
|
|
42
50
|
if (this.existing &&
|
|
43
51
|
body.is_active !== undefined &&
|
|
44
52
|
body.is_active !== this.existing.is_active)
|
|
45
53
|
admin_access_service_1.AdminAccessService.assertHolds(this.access, global_admin_roles_enum_1.GlobalAdminRoles.GLOBAL_SUPER_ADMIN, 'Activating or deactivating a tenant role');
|
|
54
|
+
if (await this.movesScopeTop())
|
|
55
|
+
admin_access_service_1.AdminAccessService.assertHolds(this.access, global_admin_roles_enum_1.GlobalAdminRoles.GLOBAL_SUPER_ADMIN, "Changing a tenant role's priority, or creating one above its scope's top role,");
|
|
56
|
+
}
|
|
57
|
+
get scopeId() {
|
|
58
|
+
return this.existing
|
|
59
|
+
? (this.existing.scope_id ?? null)
|
|
60
|
+
: (this.payload.scope_id ?? null);
|
|
61
|
+
}
|
|
62
|
+
get priority() {
|
|
63
|
+
return (this.payload.priority ??
|
|
64
|
+
this.existing?.priority ??
|
|
65
|
+
Number(role_default_enum_1.RoleDefault.PRIORITY));
|
|
66
|
+
}
|
|
67
|
+
async movesScopeTop() {
|
|
68
|
+
if (this.existing)
|
|
69
|
+
return (this.payload.priority !== undefined &&
|
|
70
|
+
this.payload.priority !== this.existing.priority);
|
|
71
|
+
if (!this.scopeId)
|
|
72
|
+
return false;
|
|
73
|
+
const top = await system_role_entity_1.SystemRoleEntity.findOne({
|
|
74
|
+
where: { scope_id: this.scopeId, is_active: true },
|
|
75
|
+
order: { priority: 'ASC' },
|
|
76
|
+
select: { id: true, priority: true },
|
|
77
|
+
});
|
|
78
|
+
return !!top && this.priority < top.priority;
|
|
79
|
+
}
|
|
80
|
+
async validatePermissions() {
|
|
81
|
+
const permissionIds = [...new Set(this.payload.permission_ids ?? [])];
|
|
82
|
+
if (!permissionIds.length)
|
|
83
|
+
return;
|
|
84
|
+
const scopeId = this.scopeId;
|
|
85
|
+
if (!scopeId) {
|
|
86
|
+
this.setColumnError('permission_ids', 'An unscoped role carries no permissions');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const [permissions, children] = await Promise.all([
|
|
90
|
+
permission_entity_1.PermissionEntity.findBy({ id: (0, typeorm_1.In)(permissionIds) }),
|
|
91
|
+
scope_entity_1.ScopeEntity.find({ where: { parent_id: scopeId }, select: { id: true } }),
|
|
92
|
+
]);
|
|
93
|
+
const allowed = new Set([scopeId, ...children.map((child) => child.id)]);
|
|
94
|
+
const byId = new Map(permissions.map((item) => [item.id, item]));
|
|
95
|
+
for (const permissionId of permissionIds) {
|
|
96
|
+
const permission = byId.get(permissionId);
|
|
97
|
+
if (!permission)
|
|
98
|
+
this.setColumnError('permission_ids', `Permission '${permissionId}' not found`);
|
|
99
|
+
else if (!allowed.has(permission.scope_id))
|
|
100
|
+
this.setColumnError('permission_ids', `Permission '${permission.identifier}' is outside this role's scope`);
|
|
101
|
+
}
|
|
46
102
|
}
|
|
47
103
|
async set() {
|
|
48
104
|
const body = this.payload;
|
|
@@ -52,9 +108,13 @@ class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataPr
|
|
|
52
108
|
role.name = body.name;
|
|
53
109
|
role.description = body.description ?? role.description ?? '';
|
|
54
110
|
role.is_active = body.is_active ?? role.is_active ?? true;
|
|
111
|
+
role.scope_id = this.scopeId;
|
|
112
|
+
role.priority = this.priority;
|
|
55
113
|
role.attributes = role.attributes ?? {};
|
|
56
114
|
await this.transaction(async (trx) => {
|
|
57
115
|
await trx.save(role);
|
|
116
|
+
if (body.permission_ids)
|
|
117
|
+
await role_service_1.RoleService.setPermissions(trx, role.id, body.permission_ids, this.access.user.id);
|
|
58
118
|
await admin_audit_1.AdminAudit.record(trx, {
|
|
59
119
|
actor: this.access.user,
|
|
60
120
|
sourceType: entity_constants_1.baseEntityConstants.systemRole,
|
|
@@ -62,6 +122,9 @@ class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataPr
|
|
|
62
122
|
action: before ? audit_action_enum_1.AuditAction.UPDATE : audit_action_enum_1.AuditAction.CREATE,
|
|
63
123
|
oldValue: before,
|
|
64
124
|
newValue: admin_audit_1.AdminAudit.pick(role, AUDITED),
|
|
125
|
+
...(body.permission_ids
|
|
126
|
+
? { context: { permission_ids: [...body.permission_ids].sort() } }
|
|
127
|
+
: {}),
|
|
65
128
|
});
|
|
66
129
|
});
|
|
67
130
|
return role;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.role.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"system.role.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.key.role.policy.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/api.key.role.policy.ts"],"names":[],"mappings":"AAIA,qBAAa,gBAAgB;WAMd,MAAM,CACjB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC;CAsBrB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiKeyRolePolicy = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const system_role_entity_1 = require("../../auth/entities/system.role.entity");
|
|
6
|
+
class ApiKeyRolePolicy {
|
|
7
|
+
static async errors(roleIds, scopeIds) {
|
|
8
|
+
const unique = [...new Set(roleIds)];
|
|
9
|
+
if (!unique.length)
|
|
10
|
+
return [];
|
|
11
|
+
const roles = await system_role_entity_1.SystemRoleEntity.findBy({
|
|
12
|
+
id: (0, typeorm_1.In)(unique),
|
|
13
|
+
is_active: true,
|
|
14
|
+
});
|
|
15
|
+
const byId = new Map(roles.map((role) => [role.id, role]));
|
|
16
|
+
const errors = [];
|
|
17
|
+
for (const roleId of unique) {
|
|
18
|
+
const role = byId.get(roleId);
|
|
19
|
+
if (!role)
|
|
20
|
+
errors.push(`Role '${roleId}' not found or inactive`);
|
|
21
|
+
else if (!role.scope_id)
|
|
22
|
+
errors.push(`Role '${role.identifier}' is unscoped; keys hold scoped roles only`);
|
|
23
|
+
else if (!scopeIds.has(role.scope_id))
|
|
24
|
+
errors.push(`Role '${role.identifier}' is outside the key's scopes`);
|
|
25
|
+
}
|
|
26
|
+
return errors;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ApiKeyRolePolicy = ApiKeyRolePolicy;
|
|
30
|
+
//# sourceMappingURL=api.key.role.policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.key.role.policy.js","sourceRoot":"","sources":["../../../src/admin/utilities/api.key.role.policy.ts"],"names":[],"mappings":";;;AAAA,qCAA6B;AAC7B,+EAA0E;AAG1E,MAAa,gBAAgB;IAM3B,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAiB,EACjB,QAAqB;QAErB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE9B,MAAM,KAAK,GAAG,MAAM,qCAAgB,CAAC,MAAM,CAAC;YAC1C,EAAE,EAAE,IAAA,YAAE,EAAC,MAAM,CAAC;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,yBAAyB,CAAC,CAAC;iBAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACrB,MAAM,CAAC,IAAI,CACT,SAAS,IAAI,CAAC,UAAU,4CAA4C,CACrE,CAAC;iBACC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,+BAA+B,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA/BD,4CA+BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.grants.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAM,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scope.grants.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAM,MAAM,SAAS,CAAC;AAW5C,qBAAa,WAAW;WACT,KAAK,CAChB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC;WAaL,YAAY,CACvB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAUvD"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ScopeGrants = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
|
+
const api_key_role_entity_1 = require("../../auth/entities/api.key.role.entity");
|
|
5
6
|
const api_scope_entity_1 = require("../../auth/entities/api.scope.entity");
|
|
7
|
+
const user_role_entity_1 = require("../../auth/entities/user.role.entity");
|
|
6
8
|
const scope_entity_1 = require("../../auth/entities/scope.entity");
|
|
7
9
|
const tenant_scope_entity_1 = require("../../auth/entities/tenant.scope.entity");
|
|
8
10
|
class ScopeGrants {
|
|
@@ -10,8 +12,11 @@ class ScopeGrants {
|
|
|
10
12
|
if (!scopeIds.length)
|
|
11
13
|
return 0;
|
|
12
14
|
const where = { scope_id: (0, typeorm_1.In)(scopeIds) };
|
|
15
|
+
const roleWhere = { role: { scope_id: (0, typeorm_1.In)(scopeIds) } };
|
|
13
16
|
return ((await manager.count(tenant_scope_entity_1.TenantScopeEntity, { where })) +
|
|
14
|
-
(await manager.count(api_scope_entity_1.ApiScopeEntity, { where }))
|
|
17
|
+
(await manager.count(api_scope_entity_1.ApiScopeEntity, { where })) +
|
|
18
|
+
(await manager.count(user_role_entity_1.UserRoleEntity, { where: roleWhere })) +
|
|
19
|
+
(await manager.count(api_key_role_entity_1.ApiKeyRoleEntity, { where: roleWhere })));
|
|
15
20
|
}
|
|
16
21
|
static async withChildren(manager, scopeId) {
|
|
17
22
|
const children = await manager.find(scope_entity_1.ScopeEntity, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.grants.js","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,2EAAsE;AACtE,mEAA+D;AAC/D,iFAA4E;
|
|
1
|
+
{"version":3,"file":"scope.grants.js","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,iFAA2E;AAC3E,2EAAsE;AACtE,2EAAsE;AACtE,mEAA+D;AAC/D,iFAA4E;AAM5E,MAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,OAAsB,EACtB,QAAkB;QAElB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,IAAA,YAAE,EAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAA,YAAE,EAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACvD,OAAO,CACL,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,uCAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,iCAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,iCAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,sCAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,OAAsB,EACtB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,0BAAW,EAAE;YAC/C,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;YAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC5B,CAAC;IACJ,CAAC;CACF;AA9BD,kCA8BC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { GlobalAdminRoles } from '../../auth/enums/global.admin.roles.enum';
|
|
2
|
+
import { HierarchyRole } from '../../auth/types/rbac.types';
|
|
3
|
+
import { RoleHierarchy } from '../../auth/utilities/role.hierarchy';
|
|
2
4
|
export declare class TenantRolePolicy {
|
|
3
5
|
static isReserved(identifier: string | null | undefined): boolean;
|
|
4
|
-
static isPrivileged(
|
|
5
|
-
static newPrivilegedGrants<R extends
|
|
6
|
-
id: string;
|
|
7
|
-
identifier: string;
|
|
8
|
-
}>(roles: R[], heldRoleIds?: Iterable<string>): R[];
|
|
6
|
+
static isPrivileged(role: Pick<HierarchyRole, 'identifier' | 'scope_id' | 'priority'> | null | undefined, hierarchy: RoleHierarchy): boolean;
|
|
7
|
+
static newPrivilegedGrants<R extends Pick<HierarchyRole, 'id' | 'identifier' | 'scope_id' | 'priority'>>(roles: R[], hierarchy: RoleHierarchy, heldRoleIds?: Iterable<string>): R[];
|
|
9
8
|
static tenantUserSaveRole(input: {
|
|
10
9
|
grantsPrivileged: boolean;
|
|
11
10
|
emailChanged: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.role.policy.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant.role.policy.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAKpE,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IASjE,MAAM,CAAC,YAAY,CACjB,IAAI,EACA,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC,GAC3D,IAAI,GACJ,SAAS,EACb,SAAS,EAAE,aAAa,GACvB,OAAO;IAOV,MAAM,CAAC,mBAAmB,CACxB,CAAC,SAAS,IAAI,CACZ,aAAa,EACb,IAAI,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAC9C,EAED,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,aAAa,EACxB,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAM,GACjC,CAAC,EAAE;IAaN,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;QAC/B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,GAAG,gBAAgB;IAQpB,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO;CAIX"}
|
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TenantRolePolicy = void 0;
|
|
4
4
|
const global_admin_roles_enum_1 = require("../../auth/enums/global.admin.roles.enum");
|
|
5
|
-
const role_tier_enum_1 = require("../../auth/enums/role.tier.enum");
|
|
6
5
|
const tenant_role_enum_1 = require("../../auth/enums/tenant.role.enum");
|
|
7
6
|
const RESERVED = new Set(Object.values(tenant_role_enum_1.TenantRole));
|
|
8
7
|
class TenantRolePolicy {
|
|
9
8
|
static isReserved(identifier) {
|
|
10
9
|
return !!identifier && RESERVED.has(identifier);
|
|
11
10
|
}
|
|
12
|
-
static isPrivileged(
|
|
13
|
-
if (!identifier)
|
|
11
|
+
static isPrivileged(role, hierarchy) {
|
|
12
|
+
if (!role?.identifier)
|
|
14
13
|
return false;
|
|
15
|
-
|
|
14
|
+
if (RESERVED.has(role.identifier))
|
|
15
|
+
return true;
|
|
16
|
+
return !!role.scope_id && hierarchy.isTopRole(role);
|
|
16
17
|
}
|
|
17
|
-
static newPrivilegedGrants(roles, heldRoleIds = []) {
|
|
18
|
+
static newPrivilegedGrants(roles, hierarchy, heldRoleIds = []) {
|
|
18
19
|
const held = new Set(heldRoleIds);
|
|
19
|
-
return roles.filter((role) => !held.has(role.id) && TenantRolePolicy.isPrivileged(role
|
|
20
|
+
return roles.filter((role) => !held.has(role.id) && TenantRolePolicy.isPrivileged(role, hierarchy));
|
|
20
21
|
}
|
|
21
22
|
static tenantUserSaveRole(input) {
|
|
22
23
|
if (input.grantsPrivileged)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.role.policy.js","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":";;;AAAA,sFAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"tenant.role.policy.js","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":";;;AAAA,sFAA4E;AAC5E,wEAA+D;AAI/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,6BAAU,CAAC,CAAC,CAAC;AAG5D,MAAa,gBAAgB;IAE3B,MAAM,CAAC,UAAU,CAAC,UAAqC;QACrD,OAAO,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAOD,MAAM,CAAC,YAAY,CACjB,IAGa,EACb,SAAwB;QAExB,IAAI,CAAC,IAAI,EAAE,UAAU;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAGD,MAAM,CAAC,mBAAmB,CAMxB,KAAU,EACV,SAAwB,EACxB,cAAgC,EAAE;QAElC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CACvE,CAAC;IACJ,CAAC;IAOD,MAAM,CAAC,kBAAkB,CAAC,KAIzB;QACC,IAAI,KAAK,CAAC,gBAAgB;YAAE,OAAO,0CAAgB,CAAC,kBAAkB,CAAC;QACvE,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe;YAC7C,OAAO,0CAAgB,CAAC,kBAAkB,CAAC;QAC7C,OAAO,0CAAgB,CAAC,YAAY,CAAC;IACvC,CAAC;IAGD,MAAM,CAAC,YAAY,CACjB,OAAkC,EAClC,IAA+B;QAE/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;CACF;AAjED,4CAiEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,qBAGa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBALxB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,uBAAuB,EAAE,uBAAuB,EAChD,uBAAuB,EAAE,uBAAuB,EAChD,QAAQ,EAAE,oBAAoB,EAC9B,wBAAwB,EAAE,wBAAwB;IAW/D,EAAE,IAAI,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,qBAGa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBALxB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,uBAAuB,EAAE,uBAAuB,EAChD,uBAAuB,EAAE,uBAAuB,EAChD,QAAQ,EAAE,oBAAoB,EAC9B,wBAAwB,EAAE,wBAAwB;IAW/D,EAAE,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA2BjC,KAAK,CACD,GAAG,EAAE,QAAQ,EACd,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAiBnB,WAAW,CACP,GAAG,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAenB,QAAQ,CACJ,GAAG,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAiBnB,OAAO,CACH,GAAG,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAgBnB,MAAM,CAAS,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAchE,cAAc,CACV,GAAG,EAAE,iBAAiB,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAevB,wBAAwB,CACrB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAgBvB,WAAW,CACP,GAAG,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;YAQf,MAAM;CASrB"}
|