@mondart/nestjs-common-module-iam 1.0.0 → 2.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/dist/decorators/owns-entity.decorator.d.ts +5 -1
- package/dist/decorators/owns-entity.decorator.d.ts.map +1 -1
- package/dist/decorators/owns-entity.decorator.js.map +1 -1
- package/dist/guards/iam-context.guard.d.ts.map +1 -1
- package/dist/guards/iam-context.guard.js +21 -6
- package/dist/guards/iam-context.guard.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { BaseModelEntity } from '@mondart/nestjs-common-module-core';
|
|
2
2
|
export declare const OWNS_ENTITY_KEY = "owns_entity";
|
|
3
|
+
export type OwnerConditions<T extends BaseModelEntity = BaseModelEntity> = {
|
|
4
|
+
ownerPropertyKey: keyof T;
|
|
5
|
+
ownerEntityId: (req: any) => string | number;
|
|
6
|
+
};
|
|
3
7
|
export interface OwnsEntityOptions<T extends BaseModelEntity = BaseModelEntity> {
|
|
4
8
|
entity: new (...args: any[]) => T;
|
|
5
9
|
entityPropertyKey: keyof T;
|
|
6
10
|
requestEntityId: (req: any) => string | number;
|
|
7
|
-
|
|
11
|
+
ownerConditions: OwnerConditions<T> | OwnerConditions<T>[];
|
|
8
12
|
}
|
|
9
13
|
export declare const OwnsEntity: <T extends BaseModelEntity = BaseModelEntity>(option: OwnsEntityOptions<T>) => import("@nestjs/common").CustomDecorator<string>;
|
|
10
14
|
//# sourceMappingURL=owns-entity.decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owns-entity.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/owns-entity.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,iBAAiB,CAChC,CAAC,SAAS,eAAe,GAAG,eAAe;IAE3C,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC3B,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,CAAC;IAC/C,
|
|
1
|
+
{"version":3,"file":"owns-entity.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/owns-entity.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IACzE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC1B,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,CAAC;CAC9C,CAAC;AAEF,MAAM,WAAW,iBAAiB,CAChC,CAAC,SAAS,eAAe,GAAG,eAAe;IAE3C,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC3B,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,CAAC;IAC/C,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5D;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,eAAe,GAAG,eAAe,EACpE,QAAQ,iBAAiB,CAAC,CAAC,CAAC,qDACW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owns-entity.decorator.js","sourceRoot":"","sources":["../../src/decorators/owns-entity.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAGhC,QAAA,eAAe,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"owns-entity.decorator.js","sourceRoot":"","sources":["../../src/decorators/owns-entity.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAGhC,QAAA,eAAe,GAAG,aAAa,CAAC;AAgBtC,MAAM,UAAU,GAAG,CACxB,MAA4B,EAC5B,EAAE,CAAC,IAAA,oBAAW,EAAC,uBAAe,EAAE,MAAM,CAAC,CAAC;AAF7B,QAAA,UAAU,cAEmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iam-context.guard.d.ts","sourceRoot":"","sources":["../../src/guards/iam-context.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiBzC,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"iam-context.guard.d.ts","sourceRoot":"","sources":["../../src/guards/iam-context.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiBzC,OAAO,EAAE,UAAU,EAA4B,MAAM,SAAS,CAAC;AAO/D,qBACa,eAAgB,YAAW,WAAW;IAE/C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,SAAS,EAAE,SAAS,EAEpB,UAAU,EAAE,UAAU;IAGnC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;YAwEhD,cAAc;CAoD7B"}
|
|
@@ -49,7 +49,16 @@ let IamContextGuard = class IamContextGuard {
|
|
|
49
49
|
userType.includes(iam_user_type_enum_1.IamUserTypeEnum.GUEST)) {
|
|
50
50
|
const options = this.reflector.getAllAndOverride(owns_entity_decorator_1.OWNS_ENTITY_KEY, [context.getHandler(), context.getClass()]);
|
|
51
51
|
if (options) {
|
|
52
|
-
const isOwner = await this.checkOwnership(options.entity.name, options.entityPropertyKey, options.requestEntityId(request), options.
|
|
52
|
+
const isOwner = await this.checkOwnership(options.entity.name, options.entityPropertyKey, options.requestEntityId(request), Array.isArray(options.ownerConditions)
|
|
53
|
+
? options.ownerConditions?.map((condition) => ({
|
|
54
|
+
ownerPropertyKey: condition.ownerPropertyKey,
|
|
55
|
+
ownerEntityId: condition.ownerEntityId(request),
|
|
56
|
+
}))
|
|
57
|
+
: {
|
|
58
|
+
ownerPropertyKey: options.ownerConditions
|
|
59
|
+
.ownerPropertyKey,
|
|
60
|
+
ownerEntityId: options.ownerConditions.ownerEntityId(request),
|
|
61
|
+
});
|
|
53
62
|
const controllerPath = this.reflector.getAllAndOverride(constants_1.PATH_METADATA, [
|
|
54
63
|
context.getHandler(),
|
|
55
64
|
context.getClass(),
|
|
@@ -65,7 +74,7 @@ let IamContextGuard = class IamContextGuard {
|
|
|
65
74
|
}
|
|
66
75
|
throw new common_1.UnauthorizedException();
|
|
67
76
|
}
|
|
68
|
-
async checkOwnership(entity, entityPropertyKey, entityId,
|
|
77
|
+
async checkOwnership(entity, entityPropertyKey, entityId, ownerConditoions) {
|
|
69
78
|
if (!entityId)
|
|
70
79
|
return true;
|
|
71
80
|
const queryRunner = this.dataSource.createQueryRunner();
|
|
@@ -81,11 +90,17 @@ let IamContextGuard = class IamContextGuard {
|
|
|
81
90
|
if (!isExists) {
|
|
82
91
|
throw new common_1.NotFoundException(nestjs_common_module_core_1.MessageFormatter.replace(nestjs_common_module_core_1.SharedMessages.RESOURCE_NOT_FOUND, 'Cart'));
|
|
83
92
|
}
|
|
93
|
+
let where = {
|
|
94
|
+
[entityPropertyKey]: entityId,
|
|
95
|
+
};
|
|
96
|
+
where = Array.isArray(ownerConditoions)
|
|
97
|
+
? ownerConditoions?.reduce((acc, curr) => {
|
|
98
|
+
acc[curr.ownerPropertyKey] = curr.ownerEntityId || (0, typeorm_2.IsNull)();
|
|
99
|
+
return acc;
|
|
100
|
+
}, where)
|
|
101
|
+
: where;
|
|
84
102
|
const isBlongeToOwner = await entityManager.getRepository(entity).exists({
|
|
85
|
-
where:
|
|
86
|
-
[entityPropertyKey]: entityId,
|
|
87
|
-
[ownerPropertyKey]: ownerId || (0, typeorm_2.IsNull)(),
|
|
88
|
-
},
|
|
103
|
+
where: where,
|
|
89
104
|
});
|
|
90
105
|
await queryRunner.commitTransaction();
|
|
91
106
|
return isBlongeToOwner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iam-context.guard.js","sourceRoot":"","sources":["../../src/guards/iam-context.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAOwB;AACxB,uCAAyC;AACzC,kFAI4C;AAC5C,kFAG8C;AAC9C,oEAA8D;AAC9D,+EAG6C;AAC7C,wDAAyD;AACzD,6CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"iam-context.guard.js","sourceRoot":"","sources":["../../src/guards/iam-context.guard.ts"],"names":[],"mappings":"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"}
|