@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.
- package/config/index.d.ts +3 -3
- package/config/message-keys.d.ts +2 -0
- package/controllers/action.controller.d.ts +4 -4
- package/controllers/company-action-permission.controller.d.ts +2 -2
- package/controllers/index.d.ts +6 -6
- package/controllers/my-permission.controller.d.ts +3 -3
- package/controllers/role-permission.controller.d.ts +5 -4
- package/controllers/role.controller.d.ts +2 -2
- package/controllers/user-action-permission.controller.d.ts +5 -4
- package/docs/iam-swagger.config.d.ts +2 -2
- package/docs/index.d.ts +1 -1
- package/dtos/action.dto.d.ts +2 -2
- package/dtos/index.d.ts +3 -3
- package/dtos/permission.dto.d.ts +16 -0
- package/entities/action.entity.d.ts +2 -2
- package/entities/index.d.ts +11 -11
- package/entities/permission-with-company.entity.d.ts +1 -1
- package/entities/role-with-company.entity.d.ts +1 -1
- package/entities/role.entity.d.ts +1 -1
- package/entities/user-iam-permission.entity.d.ts +1 -1
- package/enums/index.d.ts +4 -4
- package/fesm/284.js +1316 -0
- package/fesm/867.js +3801 -0
- package/fesm/chunks/364.js +86 -0
- package/fesm/config/index.js +135 -3
- package/fesm/controllers/index.js +18 -7
- package/fesm/docs/index.js +240 -1
- package/fesm/dtos/index.js +1168 -3
- package/fesm/entities/index.js +670 -31
- package/fesm/enums/index.js +97 -4
- package/fesm/helpers/index.js +125 -2
- package/fesm/index.js +818 -11
- package/fesm/interfaces/index.js +17 -3
- package/fesm/modules/index.js +259 -1
- package/fesm/runtime.js +134 -0
- package/fesm/services/index.js +43 -6
- package/fesm/types/index.js +15 -1
- package/helpers/company-access.helper.d.ts +2 -2
- package/helpers/index.d.ts +2 -2
- package/helpers/permission-mode.helper.d.ts +1 -1
- package/index.d.ts +11 -11
- package/interfaces/action.interface.d.ts +2 -2
- package/interfaces/iam-module-options.interface.d.ts +3 -3
- package/interfaces/index.d.ts +3 -3
- package/modules/iam.module.d.ts +2 -2
- package/modules/index.d.ts +1 -1
- package/package.json +30 -37
- package/services/action.service.d.ts +9 -9
- package/services/iam-config.service.d.ts +4 -4
- package/services/iam-datasource.service.d.ts +3 -3
- package/services/index.d.ts +6 -6
- package/services/permission-cache.service.d.ts +5 -5
- package/services/permission.service.d.ts +6 -4
- package/services/role.service.d.ts +8 -8
- package/types/index.d.ts +1 -1
- package/cjs/config/event-actions.js +0 -36
- package/cjs/config/iam.constants.js +0 -11
- package/cjs/config/index.js +0 -20
- package/cjs/config/message-keys.js +0 -71
- package/cjs/controllers/action.controller.js +0 -174
- package/cjs/controllers/action.controller.spec.js +0 -79
- package/cjs/controllers/company-action-permission.controller.js +0 -119
- package/cjs/controllers/company-action-permission.controller.spec.js +0 -65
- package/cjs/controllers/index.js +0 -23
- package/cjs/controllers/my-permission.controller.js +0 -147
- package/cjs/controllers/my-permission.controller.spec.js +0 -128
- package/cjs/controllers/role-permission.controller.js +0 -191
- package/cjs/controllers/role-permission.controller.spec.js +0 -140
- package/cjs/controllers/role.controller.js +0 -102
- package/cjs/controllers/role.controller.spec.js +0 -86
- package/cjs/controllers/user-action-permission.controller.js +0 -129
- package/cjs/controllers/user-action-permission.controller.spec.js +0 -68
- package/cjs/docs/iam-swagger.config.js +0 -209
- package/cjs/docs/iam-swagger.config.spec.js +0 -99
- package/cjs/docs/index.js +0 -18
- package/cjs/dtos/action.dto.js +0 -282
- package/cjs/dtos/index.js +0 -21
- package/cjs/dtos/permission.dto.js +0 -637
- package/cjs/dtos/role.dto.js +0 -155
- package/cjs/entities/action.entity.js +0 -138
- package/cjs/entities/index.js +0 -80
- package/cjs/entities/index.spec.js +0 -56
- package/cjs/entities/permission-base.entity.js +0 -107
- package/cjs/entities/permission-with-company.entity.js +0 -100
- package/cjs/entities/role-base.entity.js +0 -80
- package/cjs/entities/role-with-company.entity.js +0 -55
- package/cjs/entities/role.entity.js +0 -25
- package/cjs/entities/user-iam-permission.entity.js +0 -43
- package/cjs/enums/action-type.enum.js +0 -22
- package/cjs/enums/iam-entity-type.enum.js +0 -17
- package/cjs/enums/iam-permission-type.enum.js +0 -17
- package/cjs/enums/index.js +0 -21
- package/cjs/enums/permission-type.enum.js +0 -16
- package/cjs/helpers/company-access.helper.js +0 -23
- package/cjs/helpers/company-access.helper.spec.js +0 -68
- package/cjs/helpers/index.js +0 -19
- package/cjs/helpers/permission-mode.helper.js +0 -49
- package/cjs/helpers/permission-mode.helper.spec.js +0 -54
- package/cjs/index.js +0 -28
- package/cjs/interfaces/action.interface.js +0 -4
- package/cjs/interfaces/iam-module-options.interface.js +0 -4
- package/cjs/interfaces/index.js +0 -20
- package/cjs/interfaces/role.interface.js +0 -7
- package/cjs/modules/iam.module.js +0 -186
- package/cjs/modules/iam.module.spec.js +0 -282
- package/cjs/modules/index.js +0 -18
- package/cjs/services/action.service.js +0 -337
- package/cjs/services/action.service.spec.js +0 -351
- package/cjs/services/iam-config.service.js +0 -87
- package/cjs/services/iam-config.service.spec.js +0 -110
- package/cjs/services/iam-datasource.service.js +0 -129
- package/cjs/services/iam-datasource.service.spec.js +0 -110
- package/cjs/services/index.js +0 -23
- package/cjs/services/permission-cache.service.js +0 -544
- package/cjs/services/permission-cache.service.spec.js +0 -718
- package/cjs/services/permission.service.js +0 -914
- package/cjs/services/permission.service.spec.js +0 -918
- package/cjs/services/role.service.js +0 -224
- package/cjs/services/role.service.spec.js +0 -347
- package/cjs/types/index.js +0 -18
- package/cjs/types/logic-node.type.js +0 -30
- package/fesm/config/event-actions.js +0 -15
- package/fesm/config/iam.constants.js +0 -1
- package/fesm/config/message-keys.js +0 -35
- package/fesm/controllers/action.controller.js +0 -164
- package/fesm/controllers/action.controller.spec.js +0 -75
- package/fesm/controllers/company-action-permission.controller.js +0 -109
- package/fesm/controllers/company-action-permission.controller.spec.js +0 -61
- package/fesm/controllers/my-permission.controller.js +0 -137
- package/fesm/controllers/my-permission.controller.spec.js +0 -124
- package/fesm/controllers/role-permission.controller.js +0 -181
- package/fesm/controllers/role-permission.controller.spec.js +0 -136
- package/fesm/controllers/role.controller.js +0 -92
- package/fesm/controllers/role.controller.spec.js +0 -82
- package/fesm/controllers/user-action-permission.controller.js +0 -119
- package/fesm/controllers/user-action-permission.controller.spec.js +0 -64
- package/fesm/docs/iam-swagger.config.js +0 -199
- package/fesm/docs/iam-swagger.config.spec.js +0 -95
- package/fesm/dtos/action.dto.js +0 -252
- package/fesm/dtos/permission.dto.js +0 -571
- package/fesm/dtos/role.dto.js +0 -134
- package/fesm/entities/action.entity.js +0 -128
- package/fesm/entities/index.spec.js +0 -52
- package/fesm/entities/permission-base.entity.js +0 -100
- package/fesm/entities/permission-with-company.entity.js +0 -90
- package/fesm/entities/role-base.entity.js +0 -70
- package/fesm/entities/role-with-company.entity.js +0 -45
- package/fesm/entities/role.entity.js +0 -15
- package/fesm/entities/user-iam-permission.entity.js +0 -33
- package/fesm/enums/action-type.enum.js +0 -12
- package/fesm/enums/iam-entity-type.enum.js +0 -7
- package/fesm/enums/iam-permission-type.enum.js +0 -7
- package/fesm/enums/permission-type.enum.js +0 -6
- package/fesm/helpers/company-access.helper.js +0 -18
- package/fesm/helpers/company-access.helper.spec.js +0 -64
- package/fesm/helpers/permission-mode.helper.js +0 -49
- package/fesm/helpers/permission-mode.helper.spec.js +0 -50
- package/fesm/interfaces/action.interface.js +0 -3
- package/fesm/interfaces/iam-module-options.interface.js +0 -3
- package/fesm/interfaces/role.interface.js +0 -4
- package/fesm/modules/iam.module.js +0 -176
- package/fesm/modules/iam.module.spec.js +0 -278
- package/fesm/services/action.service.js +0 -327
- package/fesm/services/action.service.spec.js +0 -347
- package/fesm/services/iam-config.service.js +0 -77
- package/fesm/services/iam-config.service.spec.js +0 -106
- package/fesm/services/iam-datasource.service.js +0 -78
- package/fesm/services/iam-datasource.service.spec.js +0 -106
- package/fesm/services/permission-cache.service.js +0 -527
- package/fesm/services/permission-cache.service.spec.js +0 -714
- package/fesm/services/permission.service.js +0 -904
- package/fesm/services/permission.service.spec.js +0 -914
- package/fesm/services/role.service.js +0 -214
- package/fesm/services/role.service.spec.js +0 -343
- package/fesm/types/logic-node.type.js +0 -27
package/cjs/dtos/role.dto.js
DELETED
|
@@ -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);
|
package/cjs/entities/index.js
DELETED
|
@@ -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);
|