@neohm/nestend 3.1.4 → 3.2.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 +68 -10
- package/dist/admin/controllers/admin.api.key.controller.d.ts +24 -0
- package/dist/admin/controllers/admin.api.key.controller.d.ts.map +1 -0
- package/dist/admin/controllers/admin.api.key.controller.js +117 -0
- package/dist/admin/controllers/admin.api.key.controller.js.map +1 -0
- package/dist/admin/controllers/admin.scheduled.task.controller.d.ts +1 -1
- package/dist/admin/controllers/admin.scope.controller.d.ts +24 -0
- package/dist/admin/controllers/admin.scope.controller.d.ts.map +1 -0
- package/dist/admin/controllers/admin.scope.controller.js +106 -0
- package/dist/admin/controllers/admin.scope.controller.js.map +1 -0
- package/dist/admin/controllers/admin.tenant.controller.d.ts +5 -6
- package/dist/admin/controllers/admin.tenant.controller.d.ts.map +1 -1
- package/dist/admin/controllers/admin.tenant.controller.js +17 -11
- package/dist/admin/controllers/admin.tenant.controller.js.map +1 -1
- package/dist/admin/controllers/admin.tenant.user.controller.d.ts +4 -6
- package/dist/admin/controllers/admin.tenant.user.controller.d.ts.map +1 -1
- package/dist/admin/controllers/admin.tenant.user.controller.js +5 -8
- package/dist/admin/controllers/admin.tenant.user.controller.js.map +1 -1
- package/dist/admin/controllers/admin.user.controller.d.ts +1 -1
- package/dist/admin/dtos/add.api.key.dto.d.ts +7 -0
- package/dist/admin/dtos/add.api.key.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.api.key.dto.js +55 -0
- package/dist/admin/dtos/add.api.key.dto.js.map +1 -0
- package/dist/admin/dtos/add.client.user.dto.d.ts +1 -2
- package/dist/admin/dtos/add.client.user.dto.d.ts.map +1 -1
- package/dist/admin/dtos/add.client.user.dto.js +2 -1
- package/dist/admin/dtos/add.client.user.dto.js.map +1 -1
- package/dist/admin/dtos/add.scope.dto.d.ts +7 -0
- package/dist/admin/dtos/add.scope.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.scope.dto.js +47 -0
- package/dist/admin/dtos/add.scope.dto.js.map +1 -0
- package/dist/admin/dtos/add.tenant.dto.d.ts +1 -0
- package/dist/admin/dtos/add.tenant.dto.d.ts.map +1 -1
- package/dist/admin/dtos/add.tenant.dto.js +12 -0
- package/dist/admin/dtos/add.tenant.dto.js.map +1 -1
- package/dist/admin/dtos/api.key.list.dto.d.ts +4 -0
- package/dist/admin/dtos/api.key.list.dto.d.ts.map +1 -0
- package/dist/admin/dtos/api.key.list.dto.js +8 -0
- package/dist/admin/dtos/api.key.list.dto.js.map +1 -0
- package/dist/admin/dtos/scope.list.dto.d.ts +4 -0
- package/dist/admin/dtos/scope.list.dto.d.ts.map +1 -0
- package/dist/admin/dtos/scope.list.dto.js +8 -0
- package/dist/admin/dtos/scope.list.dto.js.map +1 -0
- package/dist/admin/es6.classes.d.ts +12 -4
- package/dist/admin/es6.classes.d.ts.map +1 -1
- package/dist/admin/es6.classes.js +21 -1
- package/dist/admin/es6.classes.js.map +1 -1
- package/dist/admin/libraries/api.key.data.processor.d.ts +16 -0
- package/dist/admin/libraries/api.key.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/api.key.data.processor.js +59 -0
- package/dist/admin/libraries/api.key.data.processor.js.map +1 -0
- package/dist/admin/libraries/api.key.list.processor.d.ts +15 -0
- package/dist/admin/libraries/api.key.list.processor.d.ts.map +1 -0
- package/dist/admin/libraries/api.key.list.processor.js +48 -0
- package/dist/admin/libraries/api.key.list.processor.js.map +1 -0
- package/dist/admin/libraries/client.user.data.processor.d.ts +3 -6
- package/dist/admin/libraries/client.user.data.processor.d.ts.map +1 -1
- package/dist/admin/libraries/client.user.data.processor.js +14 -33
- package/dist/admin/libraries/client.user.data.processor.js.map +1 -1
- package/dist/admin/libraries/scope.data.processor.d.ts +13 -0
- package/dist/admin/libraries/scope.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/scope.data.processor.js +43 -0
- package/dist/admin/libraries/scope.data.processor.js.map +1 -0
- package/dist/admin/libraries/scope.list.processor.d.ts +15 -0
- package/dist/admin/libraries/scope.list.processor.d.ts.map +1 -0
- package/dist/admin/libraries/scope.list.processor.js +29 -0
- package/dist/admin/libraries/scope.list.processor.js.map +1 -0
- package/dist/admin/libraries/tenant.data.processor.d.ts +5 -6
- package/dist/admin/libraries/tenant.data.processor.d.ts.map +1 -1
- package/dist/admin/libraries/tenant.data.processor.js +41 -28
- package/dist/admin/libraries/tenant.data.processor.js.map +1 -1
- package/dist/admin/libraries/tenant.delete.processor.d.ts.map +1 -1
- package/dist/admin/libraries/tenant.delete.processor.js +14 -0
- package/dist/admin/libraries/tenant.delete.processor.js.map +1 -1
- package/dist/admin/types/admin.types.d.ts +10 -4
- package/dist/admin/types/admin.types.d.ts.map +1 -1
- package/dist/auth/auth.module.d.ts.map +1 -1
- package/dist/auth/auth.module.js +9 -2
- package/dist/auth/auth.module.js.map +1 -1
- package/dist/auth/entities/api.key.entity.d.ts +3 -1
- package/dist/auth/entities/api.key.entity.d.ts.map +1 -1
- package/dist/auth/entities/api.key.entity.js +9 -3
- package/dist/auth/entities/api.key.entity.js.map +1 -1
- package/dist/auth/entities/tenant.scope.entity.d.ts +10 -0
- package/dist/auth/entities/tenant.scope.entity.d.ts.map +1 -0
- package/dist/auth/entities/tenant.scope.entity.js +41 -0
- package/dist/auth/entities/tenant.scope.entity.js.map +1 -0
- package/dist/auth/enums/api.key.default.enum.d.ts +2 -1
- package/dist/auth/enums/api.key.default.enum.d.ts.map +1 -1
- package/dist/auth/enums/api.key.default.enum.js +1 -0
- package/dist/auth/enums/api.key.default.enum.js.map +1 -1
- package/dist/auth/es6.classes.d.ts +2 -1
- package/dist/auth/es6.classes.d.ts.map +1 -1
- package/dist/auth/es6.classes.js +2 -0
- package/dist/auth/es6.classes.js.map +1 -1
- package/dist/auth/guards/api.key.guard.js +1 -1
- package/dist/auth/guards/api.key.guard.js.map +1 -1
- package/dist/auth/helpers/api.key.context.d.ts +6 -1
- package/dist/auth/helpers/api.key.context.d.ts.map +1 -1
- package/dist/auth/helpers/api.key.context.js +11 -2
- package/dist/auth/helpers/api.key.context.js.map +1 -1
- package/dist/auth/middlewares/api.key.middleware.d.ts +1 -0
- package/dist/auth/middlewares/api.key.middleware.d.ts.map +1 -1
- package/dist/auth/middlewares/api.key.middleware.js +17 -5
- package/dist/auth/middlewares/api.key.middleware.js.map +1 -1
- package/dist/auth/services/api.key.service.d.ts +13 -2
- package/dist/auth/services/api.key.service.d.ts.map +1 -1
- package/dist/auth/services/api.key.service.js +77 -5
- package/dist/auth/services/api.key.service.js.map +1 -1
- package/dist/auth/services/auth.service.d.ts +4 -1
- package/dist/auth/services/auth.service.d.ts.map +1 -1
- package/dist/auth/services/auth.service.js +19 -15
- package/dist/auth/services/auth.service.js.map +1 -1
- package/dist/auth/services/scope.service.d.ts +10 -0
- package/dist/auth/services/scope.service.d.ts.map +1 -0
- package/dist/auth/services/scope.service.js +50 -0
- package/dist/auth/services/scope.service.js.map +1 -0
- package/dist/auth/types/api.key.types.d.ts +15 -1
- package/dist/auth/types/api.key.types.d.ts.map +1 -1
- package/dist/common/types/common.response.types.d.ts +10 -0
- package/dist/common/types/common.response.types.d.ts.map +1 -1
- package/dist/constants/entity.constants.d.ts +1 -0
- package/dist/constants/entity.constants.d.ts.map +1 -1
- package/dist/constants/entity.constants.js +1 -0
- package/dist/constants/entity.constants.js.map +1 -1
- package/dist/constants/entity.maps.d.ts +2 -0
- package/dist/constants/entity.maps.d.ts.map +1 -1
- package/dist/constants/entity.maps.js +2 -0
- package/dist/constants/entity.maps.js.map +1 -1
- package/dist/constants/job.constants.d.ts +2 -0
- package/dist/constants/job.constants.d.ts.map +1 -1
- package/dist/constants/job.constants.js +2 -0
- package/dist/constants/job.constants.js.map +1 -1
- package/dist/constants/job.maps.d.ts.map +1 -1
- package/dist/constants/job.maps.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/migrations/1749600000017.CreateSysApiKeysTable.d.ts.map +1 -1
- package/dist/migrations/1749600000017.CreateSysApiKeysTable.js +7 -1
- package/dist/migrations/1749600000017.CreateSysApiKeysTable.js.map +1 -1
- package/dist/migrations/1749600000027.CreateSysTenantScopesTable.d.ts +6 -0
- package/dist/migrations/1749600000027.CreateSysTenantScopesTable.d.ts.map +1 -0
- package/dist/migrations/1749600000027.CreateSysTenantScopesTable.js +36 -0
- package/dist/migrations/1749600000027.CreateSysTenantScopesTable.js.map +1 -0
- package/dist/notification/es6.classes.d.ts +3 -1
- package/dist/notification/es6.classes.d.ts.map +1 -1
- package/dist/notification/es6.classes.js +3 -1
- package/dist/notification/es6.classes.js.map +1 -1
- package/dist/notification/jobs/tenant.onboarded.mail.job.d.ts +15 -0
- package/dist/notification/jobs/tenant.onboarded.mail.job.d.ts.map +1 -0
- package/dist/notification/jobs/tenant.onboarded.mail.job.js +56 -0
- package/dist/notification/jobs/tenant.onboarded.mail.job.js.map +1 -0
- package/dist/notification/jobs/tenant.user.onboarded.mail.job.d.ts +15 -0
- package/dist/notification/jobs/tenant.user.onboarded.mail.job.d.ts.map +1 -0
- package/dist/notification/jobs/tenant.user.onboarded.mail.job.js +56 -0
- package/dist/notification/jobs/tenant.user.onboarded.mail.job.js.map +1 -0
- package/dist/notification/notification.module.d.ts.map +1 -1
- package/dist/notification/notification.module.js +7 -0
- package/dist/notification/notification.module.js.map +1 -1
- package/dist/notification/types/email.notification.types.d.ts +12 -0
- package/dist/notification/types/email.notification.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/admin/dtos/add.user.role.dto.d.ts +0 -4
- package/dist/admin/dtos/add.user.role.dto.d.ts.map +0 -1
- package/dist/admin/dtos/add.user.role.dto.js +0 -22
- package/dist/admin/dtos/add.user.role.dto.js.map +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiKeyListProcessor = void 0;
|
|
4
|
+
const sort_direction_enum_1 = require("../../common/enums/sort.direction.enum");
|
|
5
|
+
const common_list_processor_1 = require("../../common/libraries/common.list.processor");
|
|
6
|
+
class ApiKeyListProcessor extends common_list_processor_1.CommonListProcessor {
|
|
7
|
+
constructor(sqlService) {
|
|
8
|
+
super();
|
|
9
|
+
this.sqlService = sqlService;
|
|
10
|
+
}
|
|
11
|
+
async process(payload) {
|
|
12
|
+
this.config = {
|
|
13
|
+
query: `sys_api_keys k
|
|
14
|
+
left join sys_tenants t on t.id = k.tenant_id
|
|
15
|
+
left join lateral (
|
|
16
|
+
select coalesce(
|
|
17
|
+
json_agg(
|
|
18
|
+
json_build_object('id', s.id, 'identifier', s.identifier, 'name', s.name)
|
|
19
|
+
order by s.identifier
|
|
20
|
+
),
|
|
21
|
+
'[]'::json
|
|
22
|
+
) granted
|
|
23
|
+
from sys_api_scopes aks
|
|
24
|
+
join sys_scopes s on s.id = aks.scope_id and s.deleted_at is null
|
|
25
|
+
where aks.api_key_id = k.id and aks.deleted_at is null
|
|
26
|
+
) sc on true`,
|
|
27
|
+
columns: [
|
|
28
|
+
{ key: 'k.id', identifier: 'id' },
|
|
29
|
+
{ key: 'k.name', identifier: 'name', searchable: true },
|
|
30
|
+
{ key: 'k.key_prefix', identifier: 'key_prefix', searchable: true },
|
|
31
|
+
{ key: 'k.is_active', identifier: 'is_active' },
|
|
32
|
+
{ key: 'k.tenant_id', identifier: 'tenant_id' },
|
|
33
|
+
{ key: 't.name', identifier: 'tenant_name', searchable: true },
|
|
34
|
+
{ key: 'sc.granted', identifier: 'scopes' },
|
|
35
|
+
{ key: 'k.expires_at', identifier: 'expires_at' },
|
|
36
|
+
{ key: 'k.revoked_at', identifier: 'revoked_at' },
|
|
37
|
+
{ key: 'k.last_used_at', identifier: 'last_used_at' },
|
|
38
|
+
{ key: 'k.created_at', identifier: 'created_at' },
|
|
39
|
+
{ key: 'k.deleted_at', identifier: 'deleted_at' },
|
|
40
|
+
],
|
|
41
|
+
defaultSort: { field: 'created_at', direction: sort_direction_enum_1.SortDirection.DESC },
|
|
42
|
+
};
|
|
43
|
+
this.payload = payload;
|
|
44
|
+
return this.handle();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.ApiKeyListProcessor = ApiKeyListProcessor;
|
|
48
|
+
//# sourceMappingURL=api.key.list.processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.key.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/api.key.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,wFAAmF;AAanF,MAAa,mBAAoB,SAAQ,2CAAmB;IAC1D,YAA+B,UAAsB;QACnD,KAAK,EAAE,CAAC;QADqB,eAAU,GAAV,UAAU,CAAY;IAErD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,IAAI,CAAC,MAAM,GAAG;YACZ,KAAK,EAAE;;;;;;;;;;;;;qBAaQ;YACf,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACjC,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;gBACnE,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE;gBAC/C,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE;gBAC/C,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC9D,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE;gBAC3C,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE;gBACjD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE;gBACjD,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE;gBACrD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE;gBACjD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE;aAClD;YACD,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,mCAAa,CAAC,IAAI,EAAE;SACpE,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AAxCD,kDAwCC"}
|
|
@@ -2,16 +2,14 @@ import { UserDataProcessor } from './user.data.processor';
|
|
|
2
2
|
import { UserEntity } from '../../auth/entities/user.entity';
|
|
3
3
|
import { TenantService } from '../../tenant/services/tenant.service';
|
|
4
4
|
import { AddClientUserDto } from '../dtos/add.client.user.dto';
|
|
5
|
-
import {
|
|
6
|
-
import { SystemPropertyService } from '../../common/services/system.property.service';
|
|
5
|
+
import { TenantUserOnboardedMailJob } from '../../notification/jobs/tenant.user.onboarded.mail.job';
|
|
7
6
|
export declare class ClientUserDataProcessor extends UserDataProcessor {
|
|
8
7
|
private readonly tenantService;
|
|
9
|
-
private readonly
|
|
10
|
-
private readonly systemPropertyService;
|
|
8
|
+
private readonly tenantUserOnboardedMailJob;
|
|
11
9
|
protected payload: AddClientUserDto;
|
|
12
10
|
private readonly logger;
|
|
13
11
|
private tenant;
|
|
14
|
-
constructor(tenantService: TenantService,
|
|
12
|
+
constructor(tenantService: TenantService, tenantUserOnboardedMailJob: TenantUserOnboardedMailJob);
|
|
15
13
|
process(payload: AddClientUserDto): Promise<UserEntity>;
|
|
16
14
|
private validate;
|
|
17
15
|
private validateTenant;
|
|
@@ -22,6 +20,5 @@ export declare class ClientUserDataProcessor extends UserDataProcessor {
|
|
|
22
20
|
private grantRoles;
|
|
23
21
|
private updateRoles;
|
|
24
22
|
private notifyUser;
|
|
25
|
-
private supportContact;
|
|
26
23
|
}
|
|
27
24
|
//# sourceMappingURL=client.user.data.processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.user.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/client.user.data.processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.user.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/client.user.data.processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AAQpG,qBAAa,uBAAwB,SAAQ,iBAAiB;IAO1D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAP7C,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IAEnE,OAAO,CAAC,MAAM,CAA6B;gBAGxB,aAAa,EAAE,aAAa,EAC5B,0BAA0B,EAAE,0BAA0B;IAKnE,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;YAM/C,QAAQ;YAQR,cAAc;YAQd,YAAY;YAuBZ,IAAI;YAKJ,MAAM;YAsBN,MAAM;YAmBN,UAAU;YASV,WAAW;YA4BX,UAAU;CAiBzB"}
|
|
@@ -6,19 +6,15 @@ const user_data_processor_1 = require("./user.data.processor");
|
|
|
6
6
|
const user_entity_1 = require("../../auth/entities/user.entity");
|
|
7
7
|
const user_type_enum_1 = require("../../auth/enums/user.type.enum");
|
|
8
8
|
const auth_utilities_1 = require("../../auth/utilities/auth.utilities");
|
|
9
|
-
const email_notification_default_enum_1 = require("../../notification/enums/email.notification.default.enum");
|
|
10
|
-
const email_template_identifier_enum_1 = require("../../notification/enums/email.template.identifier.enum");
|
|
11
|
-
const process_email_notification_1 = require("../../notification/libraries/process.email.notification");
|
|
12
9
|
const user_role_entity_1 = require("../../auth/entities/user.role.entity");
|
|
13
10
|
const access_exception_1 = require("../../global/exceptions/access.exception");
|
|
14
11
|
const typeorm_1 = require("typeorm");
|
|
15
12
|
const system_role_entity_1 = require("../../auth/entities/system.role.entity");
|
|
16
13
|
class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
|
|
17
|
-
constructor(tenantService,
|
|
14
|
+
constructor(tenantService, tenantUserOnboardedMailJob) {
|
|
18
15
|
super();
|
|
19
16
|
this.tenantService = tenantService;
|
|
20
|
-
this.
|
|
21
|
-
this.systemPropertyService = systemPropertyService;
|
|
17
|
+
this.tenantUserOnboardedMailJob = tenantUserOnboardedMailJob;
|
|
22
18
|
this.logger = new common_1.Logger(ClientUserDataProcessor.name);
|
|
23
19
|
this.tenant = null;
|
|
24
20
|
}
|
|
@@ -43,7 +39,7 @@ class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
|
|
|
43
39
|
if (!roleIds?.length) {
|
|
44
40
|
return [];
|
|
45
41
|
}
|
|
46
|
-
const uniqueRoleIds = [...new Set(roleIds.map((
|
|
42
|
+
const uniqueRoleIds = [...new Set(roleIds.map((role_id) => role_id))];
|
|
47
43
|
const roles = await system_role_entity_1.SystemRoleEntity.find({
|
|
48
44
|
where: {
|
|
49
45
|
id: (0, typeorm_1.In)(uniqueRoleIds),
|
|
@@ -59,8 +55,8 @@ class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
|
|
|
59
55
|
}
|
|
60
56
|
async save() {
|
|
61
57
|
if (this.payload?.id)
|
|
62
|
-
return this.
|
|
63
|
-
return this.
|
|
58
|
+
return this.update();
|
|
59
|
+
return this.create();
|
|
64
60
|
}
|
|
65
61
|
async create() {
|
|
66
62
|
const body = this.payload;
|
|
@@ -98,7 +94,7 @@ class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
|
|
|
98
94
|
async grantRoles(user) {
|
|
99
95
|
if (!this.payload?.role_ids?.length)
|
|
100
96
|
return;
|
|
101
|
-
const userRoles = [...new Set(this.payload.role_ids)].map((
|
|
97
|
+
const userRoles = [...new Set(this.payload.role_ids)].map((role_id) => user_role_entity_1.UserRoleEntity.create({ user_id: user.id, role_id }));
|
|
102
98
|
await user_role_entity_1.UserRoleEntity.save(userRoles);
|
|
103
99
|
}
|
|
104
100
|
async updateRoles(user) {
|
|
@@ -108,7 +104,7 @@ class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
|
|
|
108
104
|
},
|
|
109
105
|
});
|
|
110
106
|
const existingRoleIds = new Set(existingRoles.map((role) => role.role_id));
|
|
111
|
-
const roleIds = new Set((this.payload?.role_ids ?? []).map((
|
|
107
|
+
const roleIds = new Set((this.payload?.role_ids ?? []).map((role_id) => role_id));
|
|
112
108
|
for (const existingRole of existingRoles)
|
|
113
109
|
if (!roleIds.has(existingRole.role_id))
|
|
114
110
|
await existingRole.softRemove();
|
|
@@ -120,34 +116,19 @@ class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
|
|
|
120
116
|
}).save();
|
|
121
117
|
}
|
|
122
118
|
async notifyUser(user) {
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
user_email: user.email,
|
|
129
|
-
tenant_name: this.tenant?.name ?? '',
|
|
130
|
-
onboarded_on: user.created_at.toISOString(),
|
|
131
|
-
...(await this.supportContact()),
|
|
132
|
-
},
|
|
119
|
+
const data = {
|
|
120
|
+
user_name: user.full_name,
|
|
121
|
+
user_email: user.email,
|
|
122
|
+
tenant_name: this.tenant?.name ?? '',
|
|
123
|
+
onboarded_on: user.created_at.toISOString(),
|
|
133
124
|
};
|
|
134
125
|
try {
|
|
135
|
-
await
|
|
126
|
+
await this.tenantUserOnboardedMailJob.dispatch(data);
|
|
136
127
|
}
|
|
137
128
|
catch (error) {
|
|
138
|
-
this.logger.warn(`Failed to
|
|
129
|
+
this.logger.warn(`Failed to queue the tenant user onboarding email for ${user.email}: ${error.message}`);
|
|
139
130
|
}
|
|
140
131
|
}
|
|
141
|
-
async supportContact() {
|
|
142
|
-
const [supportEmail, supportLink] = await Promise.all([
|
|
143
|
-
this.systemPropertyService.get(email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_EMAIL_PROPERTY),
|
|
144
|
-
this.systemPropertyService.get(email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_LINK_PROPERTY),
|
|
145
|
-
]);
|
|
146
|
-
return {
|
|
147
|
-
support_email: supportEmail || email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_EMAIL_FALLBACK,
|
|
148
|
-
support_link: supportLink || email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_LINK_FALLBACK,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
132
|
}
|
|
152
133
|
exports.ClientUserDataProcessor = ClientUserDataProcessor;
|
|
153
134
|
//# sourceMappingURL=client.user.data.processor.js.map
|
|
@@ -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,+DAA0D;AAC1D,iEAA6D;AAC7D,oEAA2D;AAI3D,wEAAkE;
|
|
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,13 @@
|
|
|
1
|
+
import { CommonDataProcessor } from '../../common/libraries/common.data.processor';
|
|
2
|
+
import { AdminUserEntity } from '../../auth/entities/admin.user.entity';
|
|
3
|
+
import { ScopeEntity } from '../../auth/entities/scope.entity';
|
|
4
|
+
import { AddScopeDto } from '../dtos/add.scope.dto';
|
|
5
|
+
export declare class ScopeDataProcessor extends CommonDataProcessor {
|
|
6
|
+
private readonly actor;
|
|
7
|
+
protected payload: AddScopeDto;
|
|
8
|
+
constructor(actor: AdminUserEntity);
|
|
9
|
+
process(payload: AddScopeDto): Promise<ScopeEntity>;
|
|
10
|
+
private validate;
|
|
11
|
+
private set;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=scope.data.processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/scope.data.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,qBAAa,kBAAmB,SAAQ,mBAAmB;IAG7C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;gBAEF,KAAK,EAAE,eAAe;IAI7C,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAM3C,QAAQ;YAoBR,GAAG;CAgBlB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScopeDataProcessor = void 0;
|
|
4
|
+
const common_data_processor_1 = require("../../common/libraries/common.data.processor");
|
|
5
|
+
const scope_entity_1 = require("../../auth/entities/scope.entity");
|
|
6
|
+
class ScopeDataProcessor extends common_data_processor_1.CommonDataProcessor {
|
|
7
|
+
constructor(actor) {
|
|
8
|
+
super();
|
|
9
|
+
this.actor = actor;
|
|
10
|
+
}
|
|
11
|
+
async process(payload) {
|
|
12
|
+
this.payload = payload;
|
|
13
|
+
await this.validate();
|
|
14
|
+
return this.set();
|
|
15
|
+
}
|
|
16
|
+
async validate() {
|
|
17
|
+
const body = this.payload;
|
|
18
|
+
if (body.id && !(await scope_entity_1.ScopeEntity.existsBy({ id: body.id })))
|
|
19
|
+
this.setColumnError('id', 'No scope exists for this id');
|
|
20
|
+
const owner = await scope_entity_1.ScopeEntity.findOne({
|
|
21
|
+
where: { identifier: body.identifier },
|
|
22
|
+
});
|
|
23
|
+
if (owner && owner.id !== body.id)
|
|
24
|
+
this.setColumnError('identifier', 'A scope with this identifier already exists');
|
|
25
|
+
this.throwExceptionOnError();
|
|
26
|
+
}
|
|
27
|
+
async set() {
|
|
28
|
+
const body = this.payload;
|
|
29
|
+
let scope = scope_entity_1.ScopeEntity.create({ created_by: this.actor.id });
|
|
30
|
+
if (body.id) {
|
|
31
|
+
const exists = await scope_entity_1.ScopeEntity.findOne({ where: { id: body.id } });
|
|
32
|
+
if (exists)
|
|
33
|
+
scope = exists;
|
|
34
|
+
}
|
|
35
|
+
scope.identifier = body.identifier;
|
|
36
|
+
scope.name = body.name;
|
|
37
|
+
scope.description = body.description;
|
|
38
|
+
await scope.save();
|
|
39
|
+
return scope;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ScopeDataProcessor = ScopeDataProcessor;
|
|
43
|
+
//# sourceMappingURL=scope.data.processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/scope.data.processor.ts"],"names":[],"mappings":";;;AAAA,wFAAmF;AAEnF,mEAA+D;AAQ/D,MAAa,kBAAmB,SAAQ,2CAAmB;IAGzD,YAA6B,KAAsB;QACjD,KAAK,EAAE,CAAC;QADmB,UAAK,GAAL,KAAK,CAAiB;IAEnD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoB;QAChC,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,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,0BAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;QAI3D,MAAM,KAAK,GAAG,MAAM,0BAAW,CAAC,OAAO,CAAC;YACtC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,cAAc,CACjB,YAAY,EACZ,6CAA6C,CAC9C,CAAC;QAEJ,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,IAAI,KAAK,GAAG,0BAAW,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9D,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,0BAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrE,IAAI,MAAM;gBAAE,KAAK,GAAG,MAAM,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAjDD,gDAiDC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CommonListProcessor } from '../../common/libraries/common.list.processor';
|
|
2
|
+
import { SqlService } from '../../common/services/sql.service';
|
|
3
|
+
import { ScopeListDto } from '../dtos/scope.list.dto';
|
|
4
|
+
export declare class ScopeListProcessor extends CommonListProcessor {
|
|
5
|
+
protected readonly sqlService: SqlService;
|
|
6
|
+
constructor(sqlService: SqlService);
|
|
7
|
+
process(payload: ScopeListDto): Promise<{
|
|
8
|
+
records: import("../..").SqlRow[];
|
|
9
|
+
total: number;
|
|
10
|
+
page: number;
|
|
11
|
+
limit: number;
|
|
12
|
+
total_pages: number;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=scope.list.processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.list.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/scope.list.processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMtD,qBAAa,kBAAmB,SAAQ,mBAAmB;IAC7C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;gBAAtB,UAAU,EAAE,UAAU;IAI/C,OAAO,CAAC,OAAO,EAAE,YAAY;;;;;;;CAgBpC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScopeListProcessor = void 0;
|
|
4
|
+
const sort_direction_enum_1 = require("../../common/enums/sort.direction.enum");
|
|
5
|
+
const common_list_processor_1 = require("../../common/libraries/common.list.processor");
|
|
6
|
+
class ScopeListProcessor extends common_list_processor_1.CommonListProcessor {
|
|
7
|
+
constructor(sqlService) {
|
|
8
|
+
super();
|
|
9
|
+
this.sqlService = sqlService;
|
|
10
|
+
}
|
|
11
|
+
async process(payload) {
|
|
12
|
+
this.config = {
|
|
13
|
+
query: 'sys_scopes s',
|
|
14
|
+
columns: [
|
|
15
|
+
{ key: 's.id', identifier: 'id' },
|
|
16
|
+
{ key: 's.identifier', identifier: 'identifier', searchable: true },
|
|
17
|
+
{ key: 's.name', identifier: 'name', searchable: true },
|
|
18
|
+
{ key: 's.description', identifier: 'description', searchable: true },
|
|
19
|
+
{ key: 's.created_at', identifier: 'created_at' },
|
|
20
|
+
{ key: 's.deleted_at', identifier: 'deleted_at' },
|
|
21
|
+
],
|
|
22
|
+
defaultSort: { field: 'name', direction: sort_direction_enum_1.SortDirection.ASC },
|
|
23
|
+
};
|
|
24
|
+
this.payload = payload;
|
|
25
|
+
return this.handle();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.ScopeListProcessor = ScopeListProcessor;
|
|
29
|
+
//# sourceMappingURL=scope.list.processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/scope.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,wFAAmF;AAQnF,MAAa,kBAAmB,SAAQ,2CAAmB;IACzD,YAA+B,UAAsB;QACnD,KAAK,EAAE,CAAC;QADqB,eAAU,GAAV,UAAU,CAAY;IAErD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAqB;QACjC,IAAI,CAAC,MAAM,GAAG;YACZ,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACjC,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,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE;gBACjD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE;aAClD;YACD,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mCAAa,CAAC,GAAG,EAAE;SAC7D,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AArBD,gDAqBC"}
|
|
@@ -2,19 +2,18 @@ import { CommonDataProcessor } from '../../common/libraries/common.data.processo
|
|
|
2
2
|
import { AdminUserEntity } from '../../auth/entities/admin.user.entity';
|
|
3
3
|
import { TenantEntity } from '../../tenant/entities/tenant.entity';
|
|
4
4
|
import { AddTenantDto } from '../dtos/add.tenant.dto';
|
|
5
|
-
import {
|
|
6
|
-
import { SystemPropertyService } from '../../common/services/system.property.service';
|
|
5
|
+
import { TenantOnboardedMailJob } from '../../notification/jobs/tenant.onboarded.mail.job';
|
|
7
6
|
export declare class TenantDataProcessor extends CommonDataProcessor {
|
|
8
7
|
private readonly actor;
|
|
9
|
-
private readonly
|
|
10
|
-
private readonly systemPropertyService;
|
|
8
|
+
private readonly tenantOnboardedMailJob;
|
|
11
9
|
protected payload: AddTenantDto;
|
|
12
10
|
private readonly logger;
|
|
13
|
-
constructor(actor: AdminUserEntity,
|
|
11
|
+
constructor(actor: AdminUserEntity, tenantOnboardedMailJob: TenantOnboardedMailJob);
|
|
14
12
|
process(payload: AddTenantDto): Promise<TenantEntity>;
|
|
15
13
|
private validate;
|
|
14
|
+
private validateScopes;
|
|
16
15
|
private set;
|
|
16
|
+
private setScopes;
|
|
17
17
|
private notifyTenant;
|
|
18
|
-
private supportContact;
|
|
19
18
|
}
|
|
20
19
|
//# sourceMappingURL=tenant.data.processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.data.processor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tenant.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.data.processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAQ3F,qBAAa,mBAAoB,SAAQ,mBAAmB;IAKxD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IALzC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG5C,KAAK,EAAE,eAAe,EACtB,sBAAsB,EAAE,sBAAsB;IAK3D,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YAM7C,QAAQ;YAmBR,cAAc;YAYd,GAAG;YAkDH,SAAS;YA6BT,YAAY;CAiB3B"}
|
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TenantDataProcessor = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
5
6
|
const common_data_processor_1 = require("../../common/libraries/common.data.processor");
|
|
7
|
+
const scope_entity_1 = require("../../auth/entities/scope.entity");
|
|
8
|
+
const tenant_scope_entity_1 = require("../../auth/entities/tenant.scope.entity");
|
|
6
9
|
const tenant_entity_1 = require("../../tenant/entities/tenant.entity");
|
|
7
|
-
const email_notification_default_enum_1 = require("../../notification/enums/email.notification.default.enum");
|
|
8
|
-
const email_template_identifier_enum_1 = require("../../notification/enums/email.template.identifier.enum");
|
|
9
|
-
const process_email_notification_1 = require("../../notification/libraries/process.email.notification");
|
|
10
10
|
class TenantDataProcessor extends common_data_processor_1.CommonDataProcessor {
|
|
11
|
-
constructor(actor,
|
|
11
|
+
constructor(actor, tenantOnboardedMailJob) {
|
|
12
12
|
super();
|
|
13
13
|
this.actor = actor;
|
|
14
|
-
this.
|
|
15
|
-
this.systemPropertyService = systemPropertyService;
|
|
14
|
+
this.tenantOnboardedMailJob = tenantOnboardedMailJob;
|
|
16
15
|
this.logger = new common_1.Logger(TenantDataProcessor.name);
|
|
17
16
|
}
|
|
18
17
|
async process(payload) {
|
|
@@ -29,8 +28,19 @@ class TenantDataProcessor extends common_data_processor_1.CommonDataProcessor {
|
|
|
29
28
|
});
|
|
30
29
|
if (slugOwner && slugOwner.id !== body.id)
|
|
31
30
|
this.setColumnError('slug', 'Slug is already in use');
|
|
31
|
+
await this.validateScopes();
|
|
32
32
|
this.throwExceptionOnError();
|
|
33
33
|
}
|
|
34
|
+
async validateScopes() {
|
|
35
|
+
const scopeIds = [...new Set(this.payload.scope_ids ?? [])];
|
|
36
|
+
if (!scopeIds.length)
|
|
37
|
+
return;
|
|
38
|
+
const scopes = await scope_entity_1.ScopeEntity.find({ where: { id: (0, typeorm_1.In)(scopeIds) } });
|
|
39
|
+
const found = new Set(scopes.map((scope) => scope.id));
|
|
40
|
+
for (const scopeId of scopeIds)
|
|
41
|
+
if (!found.has(scopeId))
|
|
42
|
+
this.setColumnError('scope_ids', `Scope '${scopeId}' not found`);
|
|
43
|
+
}
|
|
34
44
|
async set() {
|
|
35
45
|
const body = this.payload;
|
|
36
46
|
let isNew = true;
|
|
@@ -63,39 +73,42 @@ class TenantDataProcessor extends common_data_processor_1.CommonDataProcessor {
|
|
|
63
73
|
? new Date(body.contract_expires_at)
|
|
64
74
|
: undefined;
|
|
65
75
|
await tenant.save();
|
|
76
|
+
await this.setScopes(tenant);
|
|
66
77
|
if (isNew)
|
|
67
78
|
await this.notifyTenant(tenant);
|
|
68
79
|
return tenant;
|
|
69
80
|
}
|
|
81
|
+
async setScopes(tenant) {
|
|
82
|
+
const scopeIds = new Set(this.payload.scope_ids ?? []);
|
|
83
|
+
const existing = await tenant_scope_entity_1.TenantScopeEntity.find({
|
|
84
|
+
where: { tenant_id: tenant.id },
|
|
85
|
+
});
|
|
86
|
+
const existingScopeIds = new Set(existing.map((tenantScope) => tenantScope.scope_id));
|
|
87
|
+
for (const tenantScope of existing)
|
|
88
|
+
if (!scopeIds.has(tenantScope.scope_id))
|
|
89
|
+
await tenantScope.softRemove();
|
|
90
|
+
for (const scopeId of scopeIds)
|
|
91
|
+
if (!existingScopeIds.has(scopeId))
|
|
92
|
+
await tenant_scope_entity_1.TenantScopeEntity.create({
|
|
93
|
+
tenant_id: tenant.id,
|
|
94
|
+
scope_id: scopeId,
|
|
95
|
+
created_by: this.actor.id,
|
|
96
|
+
}).save();
|
|
97
|
+
}
|
|
70
98
|
async notifyTenant(tenant) {
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
tenant_poc: tenant.poc_name,
|
|
77
|
-
tenant_email: tenant.poc_email,
|
|
78
|
-
onboarded_on: tenant.created_at.toISOString(),
|
|
79
|
-
...(await this.supportContact()),
|
|
80
|
-
},
|
|
99
|
+
const data = {
|
|
100
|
+
tenant_name: tenant.name,
|
|
101
|
+
tenant_poc: tenant.poc_name,
|
|
102
|
+
tenant_email: tenant.poc_email,
|
|
103
|
+
onboarded_on: tenant.created_at.toISOString(),
|
|
81
104
|
};
|
|
82
105
|
try {
|
|
83
|
-
await
|
|
106
|
+
await this.tenantOnboardedMailJob.dispatch(data);
|
|
84
107
|
}
|
|
85
108
|
catch (error) {
|
|
86
|
-
this.logger.warn(`Failed to
|
|
109
|
+
this.logger.warn(`Failed to queue the tenant onboarding email for ${tenant.poc_email}: ${error.message}`);
|
|
87
110
|
}
|
|
88
111
|
}
|
|
89
|
-
async supportContact() {
|
|
90
|
-
const [supportEmail, supportLink] = await Promise.all([
|
|
91
|
-
this.systemPropertyService.get(email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_EMAIL_PROPERTY),
|
|
92
|
-
this.systemPropertyService.get(email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_LINK_PROPERTY),
|
|
93
|
-
]);
|
|
94
|
-
return {
|
|
95
|
-
support_email: supportEmail || email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_EMAIL_FALLBACK,
|
|
96
|
-
support_link: supportLink || email_notification_default_enum_1.EmailNotificationDefault.SUPPORT_LINK_FALLBACK,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
112
|
}
|
|
100
113
|
exports.TenantDataProcessor = TenantDataProcessor;
|
|
101
114
|
//# sourceMappingURL=tenant.data.processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.data.processor.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,wFAAmF;AAEnF,
|
|
1
|
+
{"version":3,"file":"tenant.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.data.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.delete.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.delete.processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant.delete.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.delete.processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAOxE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAapD,qBAAa,qBAAsB,SAAQ,mBAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,eAAe;IAI7C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAuCjD"}
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TenantDeleteProcessor = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
5
|
const common_data_processor_1 = require("../../common/libraries/common.data.processor");
|
|
6
|
+
const api_key_entity_1 = require("../../auth/entities/api.key.entity");
|
|
7
|
+
const api_scope_entity_1 = require("../../auth/entities/api.scope.entity");
|
|
8
|
+
const tenant_scope_entity_1 = require("../../auth/entities/tenant.scope.entity");
|
|
6
9
|
const user_entity_1 = require("../../auth/entities/user.entity");
|
|
7
10
|
const tenant_entity_1 = require("../../tenant/entities/tenant.entity");
|
|
8
11
|
const access_revocation_1 = require("../../auth/utilities/access.revocation");
|
|
@@ -19,12 +22,23 @@ class TenantDeleteProcessor extends common_data_processor_1.CommonDataProcessor
|
|
|
19
22
|
where: { tenant_id: id, deleted_at: (0, typeorm_1.IsNull)() },
|
|
20
23
|
select: { id: true },
|
|
21
24
|
});
|
|
25
|
+
const apiKeys = await api_key_entity_1.ApiKeyEntity.find({
|
|
26
|
+
where: { tenant_id: id, deleted_at: (0, typeorm_1.IsNull)() },
|
|
27
|
+
select: { id: true },
|
|
28
|
+
});
|
|
22
29
|
await tenant_entity_1.TenantEntity.getRepository().manager.transaction(async (trx) => {
|
|
23
30
|
for (const user of users) {
|
|
24
31
|
await access_revocation_1.AccessRevocation.revokeAll(trx, user.id, false);
|
|
25
32
|
}
|
|
26
33
|
if (users.length)
|
|
27
34
|
await trx.softDelete(user_entity_1.UserEntity, users.map((user) => user.id));
|
|
35
|
+
if (apiKeys.length) {
|
|
36
|
+
const apiKeyIds = apiKeys.map((apiKey) => apiKey.id);
|
|
37
|
+
await trx.update(api_key_entity_1.ApiKeyEntity, { id: (0, typeorm_1.In)(apiKeyIds) }, { is_active: false, revoked_at: new Date() });
|
|
38
|
+
await trx.softDelete(api_scope_entity_1.ApiScopeEntity, { api_key_id: (0, typeorm_1.In)(apiKeyIds) });
|
|
39
|
+
await trx.softDelete(api_key_entity_1.ApiKeyEntity, apiKeyIds);
|
|
40
|
+
}
|
|
41
|
+
await trx.softDelete(tenant_scope_entity_1.TenantScopeEntity, { tenant_id: id });
|
|
28
42
|
await trx.softDelete(tenant_entity_1.TenantEntity, { id });
|
|
29
43
|
});
|
|
30
44
|
return { id, deleted: true, deleted_by: this.actor.id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.delete.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.delete.processor.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"tenant.delete.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/tenant.delete.processor.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,wFAAmF;AAEnF,uEAAkE;AAClE,2EAAsE;AACtE,iFAA4E;AAC5E,iEAA6D;AAC7D,uEAAmE;AACnE,8EAA0E;AAc1E,MAAa,qBAAsB,SAAQ,2CAAmB;IAC5D,YAA6B,KAAsB;QACjD,KAAK,EAAE,CAAC;QADmB,UAAK,GAAL,KAAK,CAAiB;IAEnD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,IAAI,CAAC,CAAC,MAAM,4BAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QAC5D,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,MAAM,KAAK,GAAG,MAAM,wBAAU,CAAC,IAAI,CAAC;YAClC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,6BAAY,CAAC,IAAI,CAAC;YACtC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QAEH,MAAM,4BAAY,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,oCAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,KAAK,CAAC,MAAM;gBACd,MAAM,GAAG,CAAC,UAAU,CAClB,wBAAU,EACV,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC7B,CAAC;YACJ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrD,MAAM,GAAG,CAAC,MAAM,CACd,6BAAY,EACZ,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC,EAAE,EACrB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,CAC7C,CAAC;gBACF,MAAM,GAAG,CAAC,UAAU,CAAC,iCAAc,EAAE,EAAE,UAAU,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpE,MAAM,GAAG,CAAC,UAAU,CAAC,6BAAY,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,GAAG,CAAC,UAAU,CAAC,uCAAiB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,CAAC,UAAU,CAAC,4BAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAC1D,CAAC;CACF;AA5CD,sDA4CC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import type { ApiKeyEntity } from '../../auth/entities/api.key.entity';
|
|
2
|
+
import type { ScopeEntity } from '../../auth/entities/scope.entity';
|
|
1
3
|
import type { UserEntity } from '../../auth/entities/user.entity';
|
|
4
|
+
import type { TenantEntity } from '../../tenant/entities/tenant.entity';
|
|
5
|
+
export type { DeleteResult, DisableResult, } from '../../common/types/common.response.types';
|
|
2
6
|
export interface AdminModuleOptions {
|
|
3
7
|
dataSourceName?: string;
|
|
4
8
|
}
|
|
@@ -6,9 +10,11 @@ export interface BulkUserResult {
|
|
|
6
10
|
created: number;
|
|
7
11
|
users: UserEntity[];
|
|
8
12
|
}
|
|
9
|
-
export interface
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
deleted_by: string;
|
|
13
|
+
export interface IssuedApiKey {
|
|
14
|
+
raw_key: string;
|
|
15
|
+
api_key: ApiKeyEntity;
|
|
13
16
|
}
|
|
17
|
+
export type TenantDetail = TenantEntity & {
|
|
18
|
+
scopes: ScopeEntity[];
|
|
19
|
+
};
|
|
14
20
|
//# sourceMappingURL=admin.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.types.d.ts","sourceRoot":"","sources":["../../../src/admin/types/admin.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.types.d.ts","sourceRoot":"","sources":["../../../src/admin/types/admin.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGxE,YAAY,EACV,YAAY,EACZ,aAAa,GACd,MAAM,0CAA0C,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAMD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;CACvB;AAGD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../src/auth/auth.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAId,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../src/auth/auth.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAId,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA4F5D,qBAMa,UAAU;IACrB,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,aAAa;CAShE"}
|