@flusys/nestjs-iam 7.0.2 → 8.0.0-beta.1

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 (173) hide show
  1. package/config/index.d.ts +3 -3
  2. package/controllers/action.controller.d.ts +4 -4
  3. package/controllers/company-action-permission.controller.d.ts +2 -2
  4. package/controllers/index.d.ts +6 -6
  5. package/controllers/my-permission.controller.d.ts +3 -3
  6. package/controllers/role-permission.controller.d.ts +4 -4
  7. package/controllers/role.controller.d.ts +2 -2
  8. package/controllers/user-action-permission.controller.d.ts +4 -4
  9. package/docs/iam-swagger.config.d.ts +2 -2
  10. package/docs/index.d.ts +1 -1
  11. package/dtos/action.dto.d.ts +2 -2
  12. package/dtos/index.d.ts +3 -3
  13. package/entities/action.entity.d.ts +2 -2
  14. package/entities/index.d.ts +11 -11
  15. package/entities/permission-with-company.entity.d.ts +1 -1
  16. package/entities/role-with-company.entity.d.ts +1 -1
  17. package/entities/role.entity.d.ts +1 -1
  18. package/entities/user-iam-permission.entity.d.ts +1 -1
  19. package/enums/index.d.ts +4 -4
  20. package/fesm/284.js +1262 -0
  21. package/fesm/867.js +3699 -0
  22. package/fesm/chunks/364.js +86 -0
  23. package/fesm/config/index.js +133 -3
  24. package/fesm/controllers/index.js +18 -7
  25. package/fesm/docs/index.js +240 -1
  26. package/fesm/dtos/index.js +1090 -3
  27. package/fesm/entities/index.js +670 -31
  28. package/fesm/enums/index.js +97 -4
  29. package/fesm/helpers/index.js +125 -2
  30. package/fesm/index.js +806 -11
  31. package/fesm/interfaces/index.js +17 -3
  32. package/fesm/modules/index.js +259 -1
  33. package/fesm/runtime.js +134 -0
  34. package/fesm/services/index.js +43 -6
  35. package/fesm/types/index.js +15 -1
  36. package/helpers/company-access.helper.d.ts +2 -2
  37. package/helpers/index.d.ts +2 -2
  38. package/helpers/permission-mode.helper.d.ts +1 -1
  39. package/index.d.ts +11 -11
  40. package/interfaces/action.interface.d.ts +2 -2
  41. package/interfaces/iam-module-options.interface.d.ts +3 -3
  42. package/interfaces/index.d.ts +3 -3
  43. package/modules/iam.module.d.ts +2 -2
  44. package/modules/index.d.ts +1 -1
  45. package/package.json +30 -37
  46. package/services/action.service.d.ts +9 -9
  47. package/services/iam-config.service.d.ts +4 -4
  48. package/services/iam-datasource.service.d.ts +3 -3
  49. package/services/index.d.ts +6 -6
  50. package/services/permission-cache.service.d.ts +5 -5
  51. package/services/permission.service.d.ts +4 -4
  52. package/services/role.service.d.ts +8 -8
  53. package/types/index.d.ts +1 -1
  54. package/cjs/config/event-actions.js +0 -36
  55. package/cjs/config/iam.constants.js +0 -11
  56. package/cjs/config/index.js +0 -20
  57. package/cjs/config/message-keys.js +0 -71
  58. package/cjs/controllers/action.controller.js +0 -174
  59. package/cjs/controllers/action.controller.spec.js +0 -79
  60. package/cjs/controllers/company-action-permission.controller.js +0 -119
  61. package/cjs/controllers/company-action-permission.controller.spec.js +0 -65
  62. package/cjs/controllers/index.js +0 -23
  63. package/cjs/controllers/my-permission.controller.js +0 -147
  64. package/cjs/controllers/my-permission.controller.spec.js +0 -128
  65. package/cjs/controllers/role-permission.controller.js +0 -191
  66. package/cjs/controllers/role-permission.controller.spec.js +0 -140
  67. package/cjs/controllers/role.controller.js +0 -102
  68. package/cjs/controllers/role.controller.spec.js +0 -86
  69. package/cjs/controllers/user-action-permission.controller.js +0 -129
  70. package/cjs/controllers/user-action-permission.controller.spec.js +0 -68
  71. package/cjs/docs/iam-swagger.config.js +0 -209
  72. package/cjs/docs/iam-swagger.config.spec.js +0 -99
  73. package/cjs/docs/index.js +0 -18
  74. package/cjs/dtos/action.dto.js +0 -282
  75. package/cjs/dtos/index.js +0 -21
  76. package/cjs/dtos/permission.dto.js +0 -637
  77. package/cjs/dtos/role.dto.js +0 -155
  78. package/cjs/entities/action.entity.js +0 -138
  79. package/cjs/entities/index.js +0 -80
  80. package/cjs/entities/index.spec.js +0 -56
  81. package/cjs/entities/permission-base.entity.js +0 -107
  82. package/cjs/entities/permission-with-company.entity.js +0 -100
  83. package/cjs/entities/role-base.entity.js +0 -80
  84. package/cjs/entities/role-with-company.entity.js +0 -55
  85. package/cjs/entities/role.entity.js +0 -25
  86. package/cjs/entities/user-iam-permission.entity.js +0 -43
  87. package/cjs/enums/action-type.enum.js +0 -22
  88. package/cjs/enums/iam-entity-type.enum.js +0 -17
  89. package/cjs/enums/iam-permission-type.enum.js +0 -17
  90. package/cjs/enums/index.js +0 -21
  91. package/cjs/enums/permission-type.enum.js +0 -16
  92. package/cjs/helpers/company-access.helper.js +0 -23
  93. package/cjs/helpers/company-access.helper.spec.js +0 -68
  94. package/cjs/helpers/index.js +0 -19
  95. package/cjs/helpers/permission-mode.helper.js +0 -49
  96. package/cjs/helpers/permission-mode.helper.spec.js +0 -54
  97. package/cjs/index.js +0 -28
  98. package/cjs/interfaces/action.interface.js +0 -4
  99. package/cjs/interfaces/iam-module-options.interface.js +0 -4
  100. package/cjs/interfaces/index.js +0 -20
  101. package/cjs/interfaces/role.interface.js +0 -7
  102. package/cjs/modules/iam.module.js +0 -186
  103. package/cjs/modules/iam.module.spec.js +0 -282
  104. package/cjs/modules/index.js +0 -18
  105. package/cjs/services/action.service.js +0 -337
  106. package/cjs/services/action.service.spec.js +0 -351
  107. package/cjs/services/iam-config.service.js +0 -87
  108. package/cjs/services/iam-config.service.spec.js +0 -110
  109. package/cjs/services/iam-datasource.service.js +0 -129
  110. package/cjs/services/iam-datasource.service.spec.js +0 -110
  111. package/cjs/services/index.js +0 -23
  112. package/cjs/services/permission-cache.service.js +0 -544
  113. package/cjs/services/permission-cache.service.spec.js +0 -718
  114. package/cjs/services/permission.service.js +0 -914
  115. package/cjs/services/permission.service.spec.js +0 -918
  116. package/cjs/services/role.service.js +0 -224
  117. package/cjs/services/role.service.spec.js +0 -347
  118. package/cjs/types/index.js +0 -18
  119. package/cjs/types/logic-node.type.js +0 -30
  120. package/fesm/config/event-actions.js +0 -15
  121. package/fesm/config/iam.constants.js +0 -1
  122. package/fesm/config/message-keys.js +0 -35
  123. package/fesm/controllers/action.controller.js +0 -164
  124. package/fesm/controllers/action.controller.spec.js +0 -75
  125. package/fesm/controllers/company-action-permission.controller.js +0 -109
  126. package/fesm/controllers/company-action-permission.controller.spec.js +0 -61
  127. package/fesm/controllers/my-permission.controller.js +0 -137
  128. package/fesm/controllers/my-permission.controller.spec.js +0 -124
  129. package/fesm/controllers/role-permission.controller.js +0 -181
  130. package/fesm/controllers/role-permission.controller.spec.js +0 -136
  131. package/fesm/controllers/role.controller.js +0 -92
  132. package/fesm/controllers/role.controller.spec.js +0 -82
  133. package/fesm/controllers/user-action-permission.controller.js +0 -119
  134. package/fesm/controllers/user-action-permission.controller.spec.js +0 -64
  135. package/fesm/docs/iam-swagger.config.js +0 -199
  136. package/fesm/docs/iam-swagger.config.spec.js +0 -95
  137. package/fesm/dtos/action.dto.js +0 -252
  138. package/fesm/dtos/permission.dto.js +0 -571
  139. package/fesm/dtos/role.dto.js +0 -134
  140. package/fesm/entities/action.entity.js +0 -128
  141. package/fesm/entities/index.spec.js +0 -52
  142. package/fesm/entities/permission-base.entity.js +0 -100
  143. package/fesm/entities/permission-with-company.entity.js +0 -90
  144. package/fesm/entities/role-base.entity.js +0 -70
  145. package/fesm/entities/role-with-company.entity.js +0 -45
  146. package/fesm/entities/role.entity.js +0 -15
  147. package/fesm/entities/user-iam-permission.entity.js +0 -33
  148. package/fesm/enums/action-type.enum.js +0 -12
  149. package/fesm/enums/iam-entity-type.enum.js +0 -7
  150. package/fesm/enums/iam-permission-type.enum.js +0 -7
  151. package/fesm/enums/permission-type.enum.js +0 -6
  152. package/fesm/helpers/company-access.helper.js +0 -18
  153. package/fesm/helpers/company-access.helper.spec.js +0 -64
  154. package/fesm/helpers/permission-mode.helper.js +0 -49
  155. package/fesm/helpers/permission-mode.helper.spec.js +0 -50
  156. package/fesm/interfaces/action.interface.js +0 -3
  157. package/fesm/interfaces/iam-module-options.interface.js +0 -3
  158. package/fesm/interfaces/role.interface.js +0 -4
  159. package/fesm/modules/iam.module.js +0 -176
  160. package/fesm/modules/iam.module.spec.js +0 -278
  161. package/fesm/services/action.service.js +0 -327
  162. package/fesm/services/action.service.spec.js +0 -347
  163. package/fesm/services/iam-config.service.js +0 -77
  164. package/fesm/services/iam-config.service.spec.js +0 -106
  165. package/fesm/services/iam-datasource.service.js +0 -78
  166. package/fesm/services/iam-datasource.service.spec.js +0 -106
  167. package/fesm/services/permission-cache.service.js +0 -527
  168. package/fesm/services/permission-cache.service.spec.js +0 -714
  169. package/fesm/services/permission.service.js +0 -904
  170. package/fesm/services/permission.service.spec.js +0 -914
  171. package/fesm/services/role.service.js +0 -214
  172. package/fesm/services/role.service.spec.js +0 -343
  173. 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);