easywork-common-lib 1.0.993 → 1.0.994

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.
@@ -4,10 +4,54 @@ export declare enum Roles {
4
4
  SUPERVISOR = "SUPERVISOR",
5
5
  AUTHOR = "AUTHOR"
6
6
  }
7
- export declare enum Action {
8
- Manage = "manage",
9
- Create = "create",
10
- Read = "read",
11
- Update = "update",
12
- Delete = "delete"
7
+ export declare enum PermissionAction {
8
+ CREATE = "create",
9
+ READ = "read",
10
+ UPDATE = "update",
11
+ DELETE = "delete",
12
+ MANAGE = "manage",
13
+ ASSIGN = "assign",
14
+ EXPORT = "export",
15
+ IMPORT = "import",
16
+ APPROVE = "approve",
17
+ REJECT = "reject",
18
+ CANCEL = "cancel",
19
+ COMMENT = "comment",
20
+ SHARE = "share",
21
+ ARCHIVE = "archive"
22
+ }
23
+ export declare enum PermissionScope {
24
+ OWN = "own",
25
+ TEAM = "team",
26
+ GROUP = "group",
27
+ ALL = "all",
28
+ ASSIGNED = "assigned",
29
+ SUPERVISED = "supervised"
30
+ }
31
+ export declare enum PermissionCondition {
32
+ ALWAYS = "always",
33
+ OWNER = "owner",
34
+ ASSIGNED_TO = "assignedTo",
35
+ OBSERVER = "observer",
36
+ SAME_GROUP = "sameGroup",
37
+ SAME_TEAM = "sameTeam",
38
+ ROLE_LEVEL = "roleLevel",
39
+ TIME_BASED = "timeBased",
40
+ STATUS_BASED = "statusBased"
41
+ }
42
+ export interface PermissionRule {
43
+ action: PermissionAction;
44
+ scope: PermissionScope;
45
+ conditions?: PermissionCondition[];
46
+ roleLevel?: number;
47
+ customConditions?: Record<string, any>;
48
+ timeRestrictions?: {
49
+ createdWithin?: number;
50
+ modifiedWithin?: number;
51
+ };
52
+ statusRestrictions?: string[];
53
+ }
54
+ export interface ResourcePermission {
55
+ resource: string;
56
+ rules: PermissionRule[];
13
57
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Action = exports.Roles = void 0;
3
+ exports.PermissionCondition = exports.PermissionScope = exports.PermissionAction = exports.Roles = void 0;
4
4
  var Roles;
5
5
  (function (Roles) {
6
6
  Roles["ADMIN"] = "ADMIN";
@@ -8,12 +8,42 @@ var Roles;
8
8
  Roles["SUPERVISOR"] = "SUPERVISOR";
9
9
  Roles["AUTHOR"] = "AUTHOR";
10
10
  })(Roles || (exports.Roles = Roles = {}));
11
- var Action;
12
- (function (Action) {
13
- Action["Manage"] = "manage";
14
- Action["Create"] = "create";
15
- Action["Read"] = "read";
16
- Action["Update"] = "update";
17
- Action["Delete"] = "delete";
18
- })(Action || (exports.Action = Action = {}));
11
+ var PermissionAction;
12
+ (function (PermissionAction) {
13
+ PermissionAction["CREATE"] = "create";
14
+ PermissionAction["READ"] = "read";
15
+ PermissionAction["UPDATE"] = "update";
16
+ PermissionAction["DELETE"] = "delete";
17
+ PermissionAction["MANAGE"] = "manage";
18
+ PermissionAction["ASSIGN"] = "assign";
19
+ PermissionAction["EXPORT"] = "export";
20
+ PermissionAction["IMPORT"] = "import";
21
+ PermissionAction["APPROVE"] = "approve";
22
+ PermissionAction["REJECT"] = "reject";
23
+ PermissionAction["CANCEL"] = "cancel";
24
+ PermissionAction["COMMENT"] = "comment";
25
+ PermissionAction["SHARE"] = "share";
26
+ PermissionAction["ARCHIVE"] = "archive";
27
+ })(PermissionAction || (exports.PermissionAction = PermissionAction = {}));
28
+ var PermissionScope;
29
+ (function (PermissionScope) {
30
+ PermissionScope["OWN"] = "own";
31
+ PermissionScope["TEAM"] = "team";
32
+ PermissionScope["GROUP"] = "group";
33
+ PermissionScope["ALL"] = "all";
34
+ PermissionScope["ASSIGNED"] = "assigned";
35
+ PermissionScope["SUPERVISED"] = "supervised";
36
+ })(PermissionScope || (exports.PermissionScope = PermissionScope = {}));
37
+ var PermissionCondition;
38
+ (function (PermissionCondition) {
39
+ PermissionCondition["ALWAYS"] = "always";
40
+ PermissionCondition["OWNER"] = "owner";
41
+ PermissionCondition["ASSIGNED_TO"] = "assignedTo";
42
+ PermissionCondition["OBSERVER"] = "observer";
43
+ PermissionCondition["SAME_GROUP"] = "sameGroup";
44
+ PermissionCondition["SAME_TEAM"] = "sameTeam";
45
+ PermissionCondition["ROLE_LEVEL"] = "roleLevel";
46
+ PermissionCondition["TIME_BASED"] = "timeBased";
47
+ PermissionCondition["STATUS_BASED"] = "statusBased";
48
+ })(PermissionCondition || (exports.PermissionCondition = PermissionCondition = {}));
19
49
  //# sourceMappingURL=permission.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission.enum.js","sourceRoot":"","sources":["../../../../src/common/@types/enums/permission.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAKX;AALD,WAAY,KAAK;IACf,wBAAe,CAAA;IACf,sBAAa,CAAA;IACb,kCAAyB,CAAA;IACzB,0BAAiB,CAAA;AACnB,CAAC,EALW,KAAK,qBAAL,KAAK,QAKhB;AAED,IAAY,MAMX;AAND,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;AACnB,CAAC,EANW,MAAM,sBAAN,MAAM,QAMjB"}
1
+ {"version":3,"file":"permission.enum.js","sourceRoot":"","sources":["../../../../src/common/@types/enums/permission.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAKX;AALD,WAAY,KAAK;IACf,wBAAe,CAAA;IACf,sBAAa,CAAA;IACb,kCAAyB,CAAA;IACzB,0BAAiB,CAAA;AACnB,CAAC,EALW,KAAK,qBAAL,KAAK,QAKhB;AAED,IAAY,gBAeX;AAfD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,uCAAmB,CAAA;AACrB,CAAC,EAfW,gBAAgB,gCAAhB,gBAAgB,QAe3B;AAED,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,8BAAW,CAAA;IACX,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;AAC3B,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAED,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,sCAAe,CAAA;IACf,iDAA0B,CAAA;IAC1B,4CAAqB,CAAA;IACrB,+CAAwB,CAAA;IACxB,6CAAsB,CAAA;IACtB,+CAAwB,CAAA;IACxB,+CAAwB,CAAA;IACxB,mDAA4B,CAAA;AAC9B,CAAC,EAVW,mBAAmB,mCAAnB,mBAAmB,QAU9B"}
@@ -1,7 +1,8 @@
1
1
  import { EntityBase } from "../common/database/base.entity";
2
2
  import { Role } from "./role.entity";
3
+ import { PermissionRule } from "../common";
3
4
  export declare class Permission extends EntityBase {
4
5
  resource: string;
5
- action: string;
6
+ rules: PermissionRule[];
6
7
  roles?: Role[];
7
8
  }
@@ -16,22 +16,25 @@ const role_entity_1 = require("./role.entity");
16
16
  const swagger_1 = require("@nestjs/swagger");
17
17
  let Permission = class Permission extends base_entity_1.EntityBase {
18
18
  resource;
19
- action;
19
+ rules;
20
20
  roles;
21
21
  };
22
22
  exports.Permission = Permission;
23
23
  __decorate([
24
- (0, swagger_1.ApiProperty)({ type: String, description: 'Resource for the permission' }),
24
+ (0, swagger_1.ApiProperty)({ type: String, description: "Resource for the permission" }),
25
25
  (0, typeorm_1.Column)(),
26
26
  __metadata("design:type", String)
27
27
  ], Permission.prototype, "resource", void 0);
28
28
  __decorate([
29
- (0, swagger_1.ApiProperty)({ type: String, description: 'Action for the permission' }),
30
- (0, typeorm_1.Column)(),
31
- __metadata("design:type", String)
32
- ], Permission.prototype, "action", void 0);
29
+ (0, swagger_1.ApiProperty)({ type: String, description: "Rules for the permission" }),
30
+ (0, typeorm_1.Column)({ type: "jsonb", nullable: true }),
31
+ __metadata("design:type", Array)
32
+ ], Permission.prototype, "rules", void 0);
33
33
  __decorate([
34
- (0, swagger_1.ApiProperty)({ type: () => [role_entity_1.Role], description: 'Roles associated with the permission' }),
34
+ (0, swagger_1.ApiProperty)({
35
+ type: () => [role_entity_1.Role],
36
+ description: "Roles associated with the permission",
37
+ }),
35
38
  (0, typeorm_1.ManyToMany)(() => role_entity_1.Role, {
36
39
  onDelete: "CASCADE",
37
40
  onUpdate: "CASCADE",
@@ -1 +1 @@
1
- {"version":3,"file":"permission.entity.js","sourceRoot":"","sources":["../../src/entities/permission.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,qCAAuE;AACvE,+CAAqC;AACrC,6CAA8C;AAIvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,wBAAU;IAGxC,QAAQ,CAAS;IAIjB,MAAM,CAAS;IAQf,KAAK,CAAU;CAChB,CAAA;AAhBY,gCAAU;AAGrB;IAFC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IACzE,IAAA,gBAAM,GAAE;;4CACQ;AAIjB;IAFC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACvE,IAAA,gBAAM,GAAE;;0CACM;AAQf;IANC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAI,CAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IACxF,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE;QACtB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;KACpB,CAAC;IACD,IAAA,mBAAS,GAAE;;yCACG;qBAfJ,UAAU;IAFtB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACnC,UAAU,CAgBtB"}
1
+ {"version":3,"file":"permission.entity.js","sourceRoot":"","sources":["../../src/entities/permission.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,qCAAuE;AACvE,+CAAqC;AACrC,6CAA8C;AAKvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,wBAAU;IAGxC,QAAQ,CAAS;IAIjB,KAAK,CAAmB;IAWxB,KAAK,CAAU;CAChB,CAAA;AAnBY,gCAAU;AAGrB;IAFC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IACzE,IAAA,gBAAM,GAAE;;4CACQ;AAIjB;IAFC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACtE,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAClB;AAWxB;IATC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAI,CAAC;QAClB,WAAW,EAAE,sCAAsC;KACpD,CAAC;IACD,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE;QACtB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;KACpB,CAAC;IACD,IAAA,mBAAS,GAAE;;yCACG;qBAlBJ,UAAU;IAFtB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACnC,UAAU,CAmBtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easywork-common-lib",
3
- "version": "1.0.993",
3
+ "version": "1.0.994",
4
4
  "description": "Librería común de Easywork",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {