@flusys/nestjs-iam 7.1.0 → 8.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.
Files changed (175) hide show
  1. package/config/index.d.ts +3 -3
  2. package/config/message-keys.d.ts +2 -0
  3. package/controllers/action.controller.d.ts +4 -4
  4. package/controllers/company-action-permission.controller.d.ts +2 -2
  5. package/controllers/index.d.ts +6 -6
  6. package/controllers/my-permission.controller.d.ts +3 -3
  7. package/controllers/role-permission.controller.d.ts +5 -4
  8. package/controllers/role.controller.d.ts +2 -2
  9. package/controllers/user-action-permission.controller.d.ts +5 -4
  10. package/docs/iam-swagger.config.d.ts +2 -2
  11. package/docs/index.d.ts +1 -1
  12. package/dtos/action.dto.d.ts +2 -2
  13. package/dtos/index.d.ts +3 -3
  14. package/dtos/permission.dto.d.ts +16 -0
  15. package/entities/action.entity.d.ts +2 -2
  16. package/entities/index.d.ts +11 -11
  17. package/entities/permission-with-company.entity.d.ts +1 -1
  18. package/entities/role-with-company.entity.d.ts +1 -1
  19. package/entities/role.entity.d.ts +1 -1
  20. package/entities/user-iam-permission.entity.d.ts +1 -1
  21. package/enums/index.d.ts +4 -4
  22. package/fesm/284.js +1316 -0
  23. package/fesm/867.js +3801 -0
  24. package/fesm/chunks/364.js +86 -0
  25. package/fesm/config/index.js +135 -3
  26. package/fesm/controllers/index.js +18 -7
  27. package/fesm/docs/index.js +240 -1
  28. package/fesm/dtos/index.js +1168 -3
  29. package/fesm/entities/index.js +670 -31
  30. package/fesm/enums/index.js +97 -4
  31. package/fesm/helpers/index.js +125 -2
  32. package/fesm/index.js +818 -11
  33. package/fesm/interfaces/index.js +17 -3
  34. package/fesm/modules/index.js +259 -1
  35. package/fesm/runtime.js +134 -0
  36. package/fesm/services/index.js +43 -6
  37. package/fesm/types/index.js +15 -1
  38. package/helpers/company-access.helper.d.ts +2 -2
  39. package/helpers/index.d.ts +2 -2
  40. package/helpers/permission-mode.helper.d.ts +1 -1
  41. package/index.d.ts +11 -11
  42. package/interfaces/action.interface.d.ts +2 -2
  43. package/interfaces/iam-module-options.interface.d.ts +3 -3
  44. package/interfaces/index.d.ts +3 -3
  45. package/modules/iam.module.d.ts +2 -2
  46. package/modules/index.d.ts +1 -1
  47. package/package.json +30 -37
  48. package/services/action.service.d.ts +9 -9
  49. package/services/iam-config.service.d.ts +4 -4
  50. package/services/iam-datasource.service.d.ts +3 -3
  51. package/services/index.d.ts +6 -6
  52. package/services/permission-cache.service.d.ts +5 -5
  53. package/services/permission.service.d.ts +6 -4
  54. package/services/role.service.d.ts +8 -8
  55. package/types/index.d.ts +1 -1
  56. package/cjs/config/event-actions.js +0 -36
  57. package/cjs/config/iam.constants.js +0 -11
  58. package/cjs/config/index.js +0 -20
  59. package/cjs/config/message-keys.js +0 -71
  60. package/cjs/controllers/action.controller.js +0 -174
  61. package/cjs/controllers/action.controller.spec.js +0 -79
  62. package/cjs/controllers/company-action-permission.controller.js +0 -119
  63. package/cjs/controllers/company-action-permission.controller.spec.js +0 -65
  64. package/cjs/controllers/index.js +0 -23
  65. package/cjs/controllers/my-permission.controller.js +0 -147
  66. package/cjs/controllers/my-permission.controller.spec.js +0 -128
  67. package/cjs/controllers/role-permission.controller.js +0 -191
  68. package/cjs/controllers/role-permission.controller.spec.js +0 -140
  69. package/cjs/controllers/role.controller.js +0 -102
  70. package/cjs/controllers/role.controller.spec.js +0 -86
  71. package/cjs/controllers/user-action-permission.controller.js +0 -129
  72. package/cjs/controllers/user-action-permission.controller.spec.js +0 -68
  73. package/cjs/docs/iam-swagger.config.js +0 -209
  74. package/cjs/docs/iam-swagger.config.spec.js +0 -99
  75. package/cjs/docs/index.js +0 -18
  76. package/cjs/dtos/action.dto.js +0 -282
  77. package/cjs/dtos/index.js +0 -21
  78. package/cjs/dtos/permission.dto.js +0 -637
  79. package/cjs/dtos/role.dto.js +0 -155
  80. package/cjs/entities/action.entity.js +0 -138
  81. package/cjs/entities/index.js +0 -80
  82. package/cjs/entities/index.spec.js +0 -56
  83. package/cjs/entities/permission-base.entity.js +0 -107
  84. package/cjs/entities/permission-with-company.entity.js +0 -100
  85. package/cjs/entities/role-base.entity.js +0 -80
  86. package/cjs/entities/role-with-company.entity.js +0 -55
  87. package/cjs/entities/role.entity.js +0 -25
  88. package/cjs/entities/user-iam-permission.entity.js +0 -43
  89. package/cjs/enums/action-type.enum.js +0 -22
  90. package/cjs/enums/iam-entity-type.enum.js +0 -17
  91. package/cjs/enums/iam-permission-type.enum.js +0 -17
  92. package/cjs/enums/index.js +0 -21
  93. package/cjs/enums/permission-type.enum.js +0 -16
  94. package/cjs/helpers/company-access.helper.js +0 -23
  95. package/cjs/helpers/company-access.helper.spec.js +0 -68
  96. package/cjs/helpers/index.js +0 -19
  97. package/cjs/helpers/permission-mode.helper.js +0 -49
  98. package/cjs/helpers/permission-mode.helper.spec.js +0 -54
  99. package/cjs/index.js +0 -28
  100. package/cjs/interfaces/action.interface.js +0 -4
  101. package/cjs/interfaces/iam-module-options.interface.js +0 -4
  102. package/cjs/interfaces/index.js +0 -20
  103. package/cjs/interfaces/role.interface.js +0 -7
  104. package/cjs/modules/iam.module.js +0 -186
  105. package/cjs/modules/iam.module.spec.js +0 -282
  106. package/cjs/modules/index.js +0 -18
  107. package/cjs/services/action.service.js +0 -337
  108. package/cjs/services/action.service.spec.js +0 -351
  109. package/cjs/services/iam-config.service.js +0 -87
  110. package/cjs/services/iam-config.service.spec.js +0 -110
  111. package/cjs/services/iam-datasource.service.js +0 -129
  112. package/cjs/services/iam-datasource.service.spec.js +0 -110
  113. package/cjs/services/index.js +0 -23
  114. package/cjs/services/permission-cache.service.js +0 -544
  115. package/cjs/services/permission-cache.service.spec.js +0 -718
  116. package/cjs/services/permission.service.js +0 -914
  117. package/cjs/services/permission.service.spec.js +0 -918
  118. package/cjs/services/role.service.js +0 -224
  119. package/cjs/services/role.service.spec.js +0 -347
  120. package/cjs/types/index.js +0 -18
  121. package/cjs/types/logic-node.type.js +0 -30
  122. package/fesm/config/event-actions.js +0 -15
  123. package/fesm/config/iam.constants.js +0 -1
  124. package/fesm/config/message-keys.js +0 -35
  125. package/fesm/controllers/action.controller.js +0 -164
  126. package/fesm/controllers/action.controller.spec.js +0 -75
  127. package/fesm/controllers/company-action-permission.controller.js +0 -109
  128. package/fesm/controllers/company-action-permission.controller.spec.js +0 -61
  129. package/fesm/controllers/my-permission.controller.js +0 -137
  130. package/fesm/controllers/my-permission.controller.spec.js +0 -124
  131. package/fesm/controllers/role-permission.controller.js +0 -181
  132. package/fesm/controllers/role-permission.controller.spec.js +0 -136
  133. package/fesm/controllers/role.controller.js +0 -92
  134. package/fesm/controllers/role.controller.spec.js +0 -82
  135. package/fesm/controllers/user-action-permission.controller.js +0 -119
  136. package/fesm/controllers/user-action-permission.controller.spec.js +0 -64
  137. package/fesm/docs/iam-swagger.config.js +0 -199
  138. package/fesm/docs/iam-swagger.config.spec.js +0 -95
  139. package/fesm/dtos/action.dto.js +0 -252
  140. package/fesm/dtos/permission.dto.js +0 -571
  141. package/fesm/dtos/role.dto.js +0 -134
  142. package/fesm/entities/action.entity.js +0 -128
  143. package/fesm/entities/index.spec.js +0 -52
  144. package/fesm/entities/permission-base.entity.js +0 -100
  145. package/fesm/entities/permission-with-company.entity.js +0 -90
  146. package/fesm/entities/role-base.entity.js +0 -70
  147. package/fesm/entities/role-with-company.entity.js +0 -45
  148. package/fesm/entities/role.entity.js +0 -15
  149. package/fesm/entities/user-iam-permission.entity.js +0 -33
  150. package/fesm/enums/action-type.enum.js +0 -12
  151. package/fesm/enums/iam-entity-type.enum.js +0 -7
  152. package/fesm/enums/iam-permission-type.enum.js +0 -7
  153. package/fesm/enums/permission-type.enum.js +0 -6
  154. package/fesm/helpers/company-access.helper.js +0 -18
  155. package/fesm/helpers/company-access.helper.spec.js +0 -64
  156. package/fesm/helpers/permission-mode.helper.js +0 -49
  157. package/fesm/helpers/permission-mode.helper.spec.js +0 -50
  158. package/fesm/interfaces/action.interface.js +0 -3
  159. package/fesm/interfaces/iam-module-options.interface.js +0 -3
  160. package/fesm/interfaces/role.interface.js +0 -4
  161. package/fesm/modules/iam.module.js +0 -176
  162. package/fesm/modules/iam.module.spec.js +0 -278
  163. package/fesm/services/action.service.js +0 -327
  164. package/fesm/services/action.service.spec.js +0 -347
  165. package/fesm/services/iam-config.service.js +0 -77
  166. package/fesm/services/iam-config.service.spec.js +0 -106
  167. package/fesm/services/iam-datasource.service.js +0 -78
  168. package/fesm/services/iam-datasource.service.spec.js +0 -106
  169. package/fesm/services/permission-cache.service.js +0 -527
  170. package/fesm/services/permission-cache.service.spec.js +0 -714
  171. package/fesm/services/permission.service.js +0 -904
  172. package/fesm/services/permission.service.spec.js +0 -914
  173. package/fesm/services/role.service.js +0 -214
  174. package/fesm/services/role.service.spec.js +0 -343
  175. package/fesm/types/logic-node.type.js +0 -27
@@ -1,155 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get CreateRoleDto () {
13
- return CreateRoleDto;
14
- },
15
- get RoleResponseDto () {
16
- return RoleResponseDto;
17
- },
18
- get UpdateRoleDto () {
19
- return UpdateRoleDto;
20
- }
21
- });
22
- const _dtos = require("@flusys/nestjs-shared/dtos");
23
- const _swagger = require("@nestjs/swagger");
24
- const _classtransformer = require("class-transformer");
25
- const _classvalidator = require("class-validator");
26
- function _define_property(obj, key, value) {
27
- if (key in obj) {
28
- Object.defineProperty(obj, key, {
29
- value: value,
30
- enumerable: true,
31
- configurable: true,
32
- writable: true
33
- });
34
- } else {
35
- obj[key] = value;
36
- }
37
- return obj;
38
- }
39
- function _ts_decorate(decorators, target, key, desc) {
40
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
43
- return c > 3 && r && Object.defineProperty(target, key, r), r;
44
- }
45
- function _ts_metadata(k, v) {
46
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
47
- }
48
- let CreateRoleDto = class CreateRoleDto {
49
- constructor(){
50
- _define_property(this, "name", void 0);
51
- _define_property(this, "description", void 0);
52
- _define_property(this, "companyId", void 0);
53
- _define_property(this, "isActive", void 0);
54
- _define_property(this, "serial", void 0);
55
- }
56
- };
57
- _ts_decorate([
58
- (0, _swagger.ApiProperty)({
59
- description: 'Role name',
60
- example: 'Manager'
61
- }),
62
- (0, _classvalidator.IsString)(),
63
- (0, _classvalidator.IsNotEmpty)(),
64
- (0, _classvalidator.MaxLength)(255),
65
- _ts_metadata("design:type", String)
66
- ], CreateRoleDto.prototype, "name", void 0);
67
- _ts_decorate([
68
- (0, _swagger.ApiProperty)({
69
- description: 'Role description',
70
- example: 'Management level access',
71
- required: false
72
- }),
73
- (0, _classvalidator.IsString)(),
74
- (0, _classvalidator.IsOptional)(),
75
- (0, _classvalidator.MaxLength)(500),
76
- _ts_metadata("design:type", String)
77
- ], CreateRoleDto.prototype, "description", void 0);
78
- _ts_decorate([
79
- (0, _swagger.ApiProperty)({
80
- description: 'Company ID (scope role to specific company) - Only available when company feature is enabled',
81
- example: '123e4567-e89b-12d3-a456-426614174000',
82
- required: false
83
- }),
84
- (0, _classvalidator.IsUUID)(),
85
- (0, _classvalidator.IsOptional)(),
86
- _ts_metadata("design:type", String)
87
- ], CreateRoleDto.prototype, "companyId", void 0);
88
- _ts_decorate([
89
- (0, _swagger.ApiProperty)({
90
- description: 'Active status',
91
- default: true,
92
- required: false
93
- }),
94
- (0, _classvalidator.IsBoolean)(),
95
- (0, _classvalidator.IsOptional)(),
96
- _ts_metadata("design:type", Boolean)
97
- ], CreateRoleDto.prototype, "isActive", void 0);
98
- _ts_decorate([
99
- (0, _swagger.ApiProperty)({
100
- description: 'Display order',
101
- required: false
102
- }),
103
- (0, _classvalidator.IsInt)(),
104
- (0, _classvalidator.IsOptional)(),
105
- _ts_metadata("design:type", Number)
106
- ], CreateRoleDto.prototype, "serial", void 0);
107
- let UpdateRoleDto = class UpdateRoleDto extends (0, _swagger.PartialType)(CreateRoleDto) {
108
- constructor(...args){
109
- super(...args), _define_property(this, "id", void 0);
110
- }
111
- };
112
- _ts_decorate([
113
- (0, _swagger.ApiProperty)({
114
- description: 'Role ID',
115
- example: '123e4567-e89b-12d3-a456-426614174000'
116
- }),
117
- (0, _classvalidator.IsUUID)(),
118
- (0, _classvalidator.IsNotEmpty)(),
119
- _ts_metadata("design:type", String)
120
- ], UpdateRoleDto.prototype, "id", void 0);
121
- let RoleResponseDto = class RoleResponseDto extends _dtos.IdentityResponseDto {
122
- constructor(...args){
123
- super(...args), _define_property(this, "readOnly", void 0), _define_property(this, "name", void 0), _define_property(this, "description", void 0), _define_property(this, "companyId", void 0), _define_property(this, "isActive", void 0), _define_property(this, "serial", void 0);
124
- }
125
- };
126
- _ts_decorate([
127
- (0, _classtransformer.Expose)(),
128
- (0, _swagger.ApiProperty)(),
129
- _ts_metadata("design:type", Boolean)
130
- ], RoleResponseDto.prototype, "readOnly", void 0);
131
- _ts_decorate([
132
- (0, _classtransformer.Expose)(),
133
- (0, _swagger.ApiProperty)(),
134
- _ts_metadata("design:type", String)
135
- ], RoleResponseDto.prototype, "name", void 0);
136
- _ts_decorate([
137
- (0, _classtransformer.Expose)(),
138
- (0, _swagger.ApiProperty)(),
139
- _ts_metadata("design:type", Object)
140
- ], RoleResponseDto.prototype, "description", void 0);
141
- _ts_decorate([
142
- (0, _classtransformer.Expose)(),
143
- (0, _swagger.ApiProperty)(),
144
- _ts_metadata("design:type", Object)
145
- ], RoleResponseDto.prototype, "companyId", void 0);
146
- _ts_decorate([
147
- (0, _classtransformer.Expose)(),
148
- (0, _swagger.ApiProperty)(),
149
- _ts_metadata("design:type", Boolean)
150
- ], RoleResponseDto.prototype, "isActive", void 0);
151
- _ts_decorate([
152
- (0, _classtransformer.Expose)(),
153
- (0, _swagger.ApiProperty)(),
154
- _ts_metadata("design:type", Object)
155
- ], RoleResponseDto.prototype, "serial", void 0);
@@ -1,138 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Action", {
6
- enumerable: true,
7
- get: function() {
8
- return Action;
9
- }
10
- });
11
- const _nestjsshared = require("@flusys/nestjs-shared");
12
- const _typeorm = require("typeorm");
13
- const _enums = require("../enums");
14
- function _define_property(obj, key, value) {
15
- if (key in obj) {
16
- Object.defineProperty(obj, key, {
17
- value: value,
18
- enumerable: true,
19
- configurable: true,
20
- writable: true
21
- });
22
- } else {
23
- obj[key] = value;
24
- }
25
- return obj;
26
- }
27
- function _ts_decorate(decorators, target, key, desc) {
28
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31
- return c > 3 && r && Object.defineProperty(target, key, r), r;
32
- }
33
- function _ts_metadata(k, v) {
34
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
35
- }
36
- let Action = class Action extends _nestjsshared.Identity {
37
- constructor(...args){
38
- super(...args), _define_property(this, "readOnly", void 0), _define_property(this, "name", void 0), _define_property(this, "description", void 0), _define_property(this, "code", void 0), _define_property(this, "actionType", void 0), _define_property(this, "permissionLogic", void 0), _define_property(this, "serial", void 0), _define_property(this, "isActive", void 0), _define_property(this, "parent", void 0), _define_property(this, "parentId", void 0), _define_property(this, "children", void 0);
39
- }
40
- };
41
- _ts_decorate([
42
- (0, _typeorm.Column)({
43
- type: 'boolean',
44
- nullable: false,
45
- default: false,
46
- name: 'read_only'
47
- }),
48
- _ts_metadata("design:type", Boolean)
49
- ], Action.prototype, "readOnly", void 0);
50
- _ts_decorate([
51
- (0, _typeorm.Column)({
52
- type: 'varchar',
53
- length: 255,
54
- nullable: false
55
- }),
56
- _ts_metadata("design:type", String)
57
- ], Action.prototype, "name", void 0);
58
- _ts_decorate([
59
- (0, _typeorm.Column)({
60
- type: 'varchar',
61
- length: 500,
62
- nullable: true
63
- }),
64
- _ts_metadata("design:type", Object)
65
- ], Action.prototype, "description", void 0);
66
- _ts_decorate([
67
- (0, _typeorm.Column)({
68
- type: 'varchar',
69
- length: 255,
70
- nullable: true,
71
- unique: true
72
- }),
73
- _ts_metadata("design:type", Object)
74
- ], Action.prototype, "code", void 0);
75
- _ts_decorate([
76
- (0, _typeorm.Column)({
77
- type: 'varchar',
78
- length: 50,
79
- nullable: false,
80
- default: 'BACKEND',
81
- name: 'action_type'
82
- }),
83
- _ts_metadata("design:type", typeof _enums.ActionType === "undefined" ? Object : _enums.ActionType)
84
- ], Action.prototype, "actionType", void 0);
85
- _ts_decorate([
86
- (0, _typeorm.Column)({
87
- type: (0, _nestjsshared.getJsonColumnType)(),
88
- nullable: true,
89
- name: 'permission_logic'
90
- }),
91
- _ts_metadata("design:type", Object)
92
- ], Action.prototype, "permissionLogic", void 0);
93
- _ts_decorate([
94
- (0, _typeorm.Column)({
95
- type: 'int',
96
- nullable: true
97
- }),
98
- _ts_metadata("design:type", Object)
99
- ], Action.prototype, "serial", void 0);
100
- _ts_decorate([
101
- (0, _typeorm.Column)({
102
- type: 'boolean',
103
- nullable: false,
104
- default: true,
105
- name: 'is_active'
106
- }),
107
- _ts_metadata("design:type", Boolean)
108
- ], Action.prototype, "isActive", void 0);
109
- _ts_decorate([
110
- (0, _typeorm.ManyToOne)('Action', 'children', {
111
- nullable: true,
112
- onDelete: 'CASCADE'
113
- }),
114
- (0, _typeorm.JoinColumn)({
115
- name: 'parent_id'
116
- }),
117
- _ts_metadata("design:type", Object)
118
- ], Action.prototype, "parent", void 0);
119
- _ts_decorate([
120
- (0, _typeorm.Column)({
121
- type: 'uuid',
122
- nullable: true,
123
- name: 'parent_id'
124
- }),
125
- _ts_metadata("design:type", Object)
126
- ], Action.prototype, "parentId", void 0);
127
- _ts_decorate([
128
- (0, _typeorm.OneToMany)('Action', 'parent'),
129
- _ts_metadata("design:type", Array)
130
- ], Action.prototype, "children", void 0);
131
- Action = _ts_decorate([
132
- (0, _typeorm.Entity)({
133
- name: 'action'
134
- }),
135
- (0, _typeorm.Index)([
136
- 'parentId'
137
- ])
138
- ], Action);
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get IAMAllEntities () {
13
- return IAMAllEntities;
14
- },
15
- get IAMCompanyEntities () {
16
- return IAMCompanyEntities;
17
- },
18
- get IAMCoreEntities () {
19
- return IAMCoreEntities;
20
- },
21
- get getIAMEntitiesByConfig () {
22
- return getIAMEntitiesByConfig;
23
- }
24
- });
25
- const _actionentity = _export_star(require("./action.entity"), exports);
26
- _export_star(require("./permission-base.entity"), exports);
27
- _export_star(require("./role-base.entity"), exports);
28
- const _permissionwithcompanyentity = _export_star(require("./permission-with-company.entity"), exports);
29
- const _rolewithcompanyentity = _export_star(require("./role-with-company.entity"), exports);
30
- const _roleentity = _export_star(require("./role.entity"), exports);
31
- const _useriampermissionentity = _export_star(require("./user-iam-permission.entity"), exports);
32
- function _export_star(from, to) {
33
- Object.keys(from).forEach(function(k) {
34
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
35
- Object.defineProperty(to, k, {
36
- enumerable: true,
37
- get: function() {
38
- return from[k];
39
- }
40
- });
41
- }
42
- });
43
- return from;
44
- }
45
- const IAMCoreEntities = [
46
- _actionentity.Action,
47
- _roleentity.Role,
48
- _useriampermissionentity.UserIamPermission
49
- ];
50
- const IAMCompanyEntities = [
51
- _rolewithcompanyentity.RoleWithCompany,
52
- _permissionwithcompanyentity.UserIamPermissionWithCompany
53
- ];
54
- const IAMAllEntities = [
55
- _actionentity.Action,
56
- _roleentity.Role,
57
- _rolewithcompanyentity.RoleWithCompany,
58
- _useriampermissionentity.UserIamPermission,
59
- _permissionwithcompanyentity.UserIamPermissionWithCompany
60
- ];
61
- function getIAMEntitiesByConfig(enableCompanyFeature, permissionMode = 'FULL') {
62
- const entities = [
63
- _actionentity.Action
64
- ];
65
- // Permission entity - always included
66
- if (enableCompanyFeature) {
67
- entities.push(_permissionwithcompanyentity.UserIamPermissionWithCompany);
68
- } else {
69
- entities.push(_useriampermissionentity.UserIamPermission);
70
- }
71
- // Role entity - Only for RBAC or FULL mode (not DIRECT)
72
- if (permissionMode === 'RBAC' || permissionMode === 'FULL') {
73
- if (enableCompanyFeature) {
74
- entities.push(_rolewithcompanyentity.RoleWithCompany);
75
- } else {
76
- entities.push(_roleentity.Role);
77
- }
78
- }
79
- return entities;
80
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _index = require("./index");
6
- const _actionentity = require("./action.entity");
7
- const _roleentity = require("./role.entity");
8
- const _rolewithcompanyentity = require("./role-with-company.entity");
9
- const _useriampermissionentity = require("./user-iam-permission.entity");
10
- const _permissionwithcompanyentity = require("./permission-with-company.entity");
11
- describe('getIAMEntitiesByConfig', ()=>{
12
- it('should always include Action', ()=>{
13
- expect((0, _index.getIAMEntitiesByConfig)(false)).toContain(_actionentity.Action);
14
- expect((0, _index.getIAMEntitiesByConfig)(true)).toContain(_actionentity.Action);
15
- });
16
- it('should default permissionMode to FULL and include Role + UserIamPermission when company feature is off', ()=>{
17
- const entities = (0, _index.getIAMEntitiesByConfig)(false);
18
- expect(entities).toEqual(expect.arrayContaining([
19
- _actionentity.Action,
20
- _useriampermissionentity.UserIamPermission,
21
- _roleentity.Role
22
- ]));
23
- expect(entities).not.toContain(_rolewithcompanyentity.RoleWithCompany);
24
- expect(entities).not.toContain(_permissionwithcompanyentity.UserIamPermissionWithCompany);
25
- });
26
- it('should use the company-scoped permission entity when enableCompanyFeature is true', ()=>{
27
- const entities = (0, _index.getIAMEntitiesByConfig)(true, 'FULL');
28
- expect(entities).toContain(_permissionwithcompanyentity.UserIamPermissionWithCompany);
29
- expect(entities).not.toContain(_useriampermissionentity.UserIamPermission);
30
- });
31
- it('should use the company-scoped role entity when enableCompanyFeature is true', ()=>{
32
- const entities = (0, _index.getIAMEntitiesByConfig)(true, 'RBAC');
33
- expect(entities).toContain(_rolewithcompanyentity.RoleWithCompany);
34
- expect(entities).not.toContain(_roleentity.Role);
35
- });
36
- it('should include Role for RBAC mode', ()=>{
37
- expect((0, _index.getIAMEntitiesByConfig)(false, 'RBAC')).toContain(_roleentity.Role);
38
- });
39
- it('should include Role for FULL mode', ()=>{
40
- expect((0, _index.getIAMEntitiesByConfig)(false, 'FULL')).toContain(_roleentity.Role);
41
- });
42
- it('should exclude Role entirely for DIRECT mode', ()=>{
43
- const entities = (0, _index.getIAMEntitiesByConfig)(false, 'DIRECT');
44
- expect(entities).not.toContain(_roleentity.Role);
45
- expect(entities).not.toContain(_rolewithcompanyentity.RoleWithCompany);
46
- expect(entities).toEqual(expect.arrayContaining([
47
- _actionentity.Action,
48
- _useriampermissionentity.UserIamPermission
49
- ]));
50
- });
51
- it('should exclude the company-scoped Role for DIRECT mode even with company feature enabled', ()=>{
52
- const entities = (0, _index.getIAMEntitiesByConfig)(true, 'DIRECT');
53
- expect(entities).not.toContain(_rolewithcompanyentity.RoleWithCompany);
54
- expect(entities).toContain(_permissionwithcompanyentity.UserIamPermissionWithCompany);
55
- });
56
- });
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "PermissionBase", {
6
- enumerable: true,
7
- get: function() {
8
- return PermissionBase;
9
- }
10
- });
11
- const _nestjsshared = require("@flusys/nestjs-shared");
12
- const _typeorm = require("typeorm");
13
- function _define_property(obj, key, value) {
14
- if (key in obj) {
15
- Object.defineProperty(obj, key, {
16
- value: value,
17
- enumerable: true,
18
- configurable: true,
19
- writable: true
20
- });
21
- } else {
22
- obj[key] = value;
23
- }
24
- return obj;
25
- }
26
- function _ts_decorate(decorators, target, key, desc) {
27
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31
- }
32
- function _ts_metadata(k, v) {
33
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
- }
35
- let PermissionBase = class PermissionBase extends _nestjsshared.Identity {
36
- isValid(now = new Date()) {
37
- if (this.validFrom && now < this.validFrom) return false;
38
- if (this.validUntil && now > this.validUntil) return false;
39
- return true;
40
- }
41
- constructor(...args){
42
- super(...args), _define_property(this, "permissionType", void 0), _define_property(this, "sourceType", void 0), _define_property(this, "sourceId", void 0), _define_property(this, "targetType", void 0), _define_property(this, "targetId", void 0), _define_property(this, "validFrom", void 0), _define_property(this, "validUntil", void 0), _define_property(this, "reason", void 0);
43
- }
44
- };
45
- _ts_decorate([
46
- (0, _typeorm.Column)({
47
- type: 'varchar',
48
- length: 50,
49
- name: 'permission_type'
50
- }),
51
- _ts_metadata("design:type", String)
52
- ], PermissionBase.prototype, "permissionType", void 0);
53
- _ts_decorate([
54
- (0, _typeorm.Column)({
55
- type: 'varchar',
56
- length: 50,
57
- name: 'source_type'
58
- }),
59
- _ts_metadata("design:type", String)
60
- ], PermissionBase.prototype, "sourceType", void 0);
61
- _ts_decorate([
62
- (0, _typeorm.Column)({
63
- type: 'varchar',
64
- length: 150,
65
- name: 'source_id'
66
- }),
67
- _ts_metadata("design:type", String)
68
- ], PermissionBase.prototype, "sourceId", void 0);
69
- _ts_decorate([
70
- (0, _typeorm.Column)({
71
- type: 'varchar',
72
- length: 50,
73
- name: 'target_type'
74
- }),
75
- _ts_metadata("design:type", String)
76
- ], PermissionBase.prototype, "targetType", void 0);
77
- _ts_decorate([
78
- (0, _typeorm.Column)({
79
- type: 'varchar',
80
- length: 150,
81
- name: 'target_id'
82
- }),
83
- _ts_metadata("design:type", String)
84
- ], PermissionBase.prototype, "targetId", void 0);
85
- _ts_decorate([
86
- (0, _typeorm.Column)({
87
- type: 'timestamp',
88
- nullable: true,
89
- name: 'valid_from'
90
- }),
91
- _ts_metadata("design:type", Object)
92
- ], PermissionBase.prototype, "validFrom", void 0);
93
- _ts_decorate([
94
- (0, _typeorm.Column)({
95
- type: 'timestamp',
96
- nullable: true,
97
- name: 'valid_until'
98
- }),
99
- _ts_metadata("design:type", Object)
100
- ], PermissionBase.prototype, "validUntil", void 0);
101
- _ts_decorate([
102
- (0, _typeorm.Column)({
103
- type: 'text',
104
- nullable: true
105
- }),
106
- _ts_metadata("design:type", Object)
107
- ], PermissionBase.prototype, "reason", void 0);
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "UserIamPermissionWithCompany", {
6
- enumerable: true,
7
- get: function() {
8
- return UserIamPermissionWithCompany;
9
- }
10
- });
11
- const _typeorm = require("typeorm");
12
- const _permissionbaseentity = require("./permission-base.entity");
13
- function _define_property(obj, key, value) {
14
- if (key in obj) {
15
- Object.defineProperty(obj, key, {
16
- value: value,
17
- enumerable: true,
18
- configurable: true,
19
- writable: true
20
- });
21
- } else {
22
- obj[key] = value;
23
- }
24
- return obj;
25
- }
26
- function _ts_decorate(decorators, target, key, desc) {
27
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31
- }
32
- function _ts_metadata(k, v) {
33
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
- }
35
- let UserIamPermissionWithCompany = class UserIamPermissionWithCompany extends _permissionbaseentity.PermissionBase {
36
- constructor(...args){
37
- super(...args), /**
38
- * Company ID - Company scope for this permission
39
- * - null: Global permission (not company-specific)
40
- * - set: Permission belongs to this company
41
- */ _define_property(this, "companyId", void 0), /**
42
- * Branch ID - Branch scope for this permission
43
- * - null: Company-wide permission (all branches in company)
44
- * - set: Permission applies only to this specific branch
45
- */ _define_property(this, "branchId", void 0);
46
- }
47
- };
48
- _ts_decorate([
49
- (0, _typeorm.Column)({
50
- type: 'varchar',
51
- length: 150,
52
- nullable: true,
53
- name: 'company_id'
54
- }),
55
- _ts_metadata("design:type", Object)
56
- ], UserIamPermissionWithCompany.prototype, "companyId", void 0);
57
- _ts_decorate([
58
- (0, _typeorm.Column)({
59
- type: 'varchar',
60
- length: 150,
61
- nullable: true,
62
- name: 'branch_id'
63
- }),
64
- _ts_metadata("design:type", Object)
65
- ], UserIamPermissionWithCompany.prototype, "branchId", void 0);
66
- UserIamPermissionWithCompany = _ts_decorate([
67
- (0, _typeorm.Entity)({
68
- name: 'user_iam_permission'
69
- }),
70
- (0, _typeorm.Index)([
71
- 'permissionType',
72
- 'sourceId',
73
- 'targetId',
74
- 'companyId',
75
- 'branchId'
76
- ], {
77
- unique: true
78
- }),
79
- (0, _typeorm.Index)([
80
- 'sourceId',
81
- 'sourceType'
82
- ]),
83
- (0, _typeorm.Index)([
84
- 'targetId',
85
- 'targetType'
86
- ]),
87
- (0, _typeorm.Index)([
88
- 'permissionType'
89
- ]),
90
- (0, _typeorm.Index)([
91
- 'companyId'
92
- ]),
93
- (0, _typeorm.Index)([
94
- 'branchId'
95
- ]),
96
- (0, _typeorm.Index)([
97
- 'companyId',
98
- 'branchId'
99
- ])
100
- ], UserIamPermissionWithCompany);