@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
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "RoleBase", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return RoleBase;
|
|
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 RoleBase = class RoleBase extends _nestjsshared.Identity {
|
|
36
|
-
constructor(...args){
|
|
37
|
-
super(...args), _define_property(this, "readOnly", void 0), _define_property(this, "name", void 0), _define_property(this, "description", void 0), _define_property(this, "isActive", void 0), _define_property(this, "serial", void 0);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
_ts_decorate([
|
|
41
|
-
(0, _typeorm.Column)({
|
|
42
|
-
type: 'boolean',
|
|
43
|
-
nullable: false,
|
|
44
|
-
default: false,
|
|
45
|
-
name: 'read_only'
|
|
46
|
-
}),
|
|
47
|
-
_ts_metadata("design:type", Boolean)
|
|
48
|
-
], RoleBase.prototype, "readOnly", void 0);
|
|
49
|
-
_ts_decorate([
|
|
50
|
-
(0, _typeorm.Column)({
|
|
51
|
-
type: 'varchar',
|
|
52
|
-
length: 255,
|
|
53
|
-
nullable: false
|
|
54
|
-
}),
|
|
55
|
-
_ts_metadata("design:type", String)
|
|
56
|
-
], RoleBase.prototype, "name", void 0);
|
|
57
|
-
_ts_decorate([
|
|
58
|
-
(0, _typeorm.Column)({
|
|
59
|
-
type: 'varchar',
|
|
60
|
-
length: 500,
|
|
61
|
-
nullable: true
|
|
62
|
-
}),
|
|
63
|
-
_ts_metadata("design:type", Object)
|
|
64
|
-
], RoleBase.prototype, "description", void 0);
|
|
65
|
-
_ts_decorate([
|
|
66
|
-
(0, _typeorm.Column)({
|
|
67
|
-
type: 'boolean',
|
|
68
|
-
nullable: false,
|
|
69
|
-
default: true,
|
|
70
|
-
name: 'is_active'
|
|
71
|
-
}),
|
|
72
|
-
_ts_metadata("design:type", Boolean)
|
|
73
|
-
], RoleBase.prototype, "isActive", void 0);
|
|
74
|
-
_ts_decorate([
|
|
75
|
-
(0, _typeorm.Column)({
|
|
76
|
-
type: 'int',
|
|
77
|
-
nullable: true
|
|
78
|
-
}),
|
|
79
|
-
_ts_metadata("design:type", Object)
|
|
80
|
-
], RoleBase.prototype, "serial", void 0);
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "RoleWithCompany", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return RoleWithCompany;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _typeorm = require("typeorm");
|
|
12
|
-
const _rolebaseentity = require("./role-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 RoleWithCompany = class RoleWithCompany extends _rolebaseentity.RoleBase {
|
|
36
|
-
constructor(...args){
|
|
37
|
-
super(...args), _define_property(this, "companyId", void 0);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
_ts_decorate([
|
|
41
|
-
(0, _typeorm.Column)({
|
|
42
|
-
type: 'uuid',
|
|
43
|
-
nullable: true,
|
|
44
|
-
name: 'company_id'
|
|
45
|
-
}),
|
|
46
|
-
_ts_metadata("design:type", Object)
|
|
47
|
-
], RoleWithCompany.prototype, "companyId", void 0);
|
|
48
|
-
RoleWithCompany = _ts_decorate([
|
|
49
|
-
(0, _typeorm.Entity)({
|
|
50
|
-
name: 'role'
|
|
51
|
-
}),
|
|
52
|
-
(0, _typeorm.Index)([
|
|
53
|
-
'companyId'
|
|
54
|
-
])
|
|
55
|
-
], RoleWithCompany);
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "Role", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return Role;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _typeorm = require("typeorm");
|
|
12
|
-
const _rolebaseentity = require("./role-base.entity");
|
|
13
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
14
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
15
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
16
|
-
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;
|
|
17
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
18
|
-
}
|
|
19
|
-
let Role = class Role extends _rolebaseentity.RoleBase {
|
|
20
|
-
};
|
|
21
|
-
Role = _ts_decorate([
|
|
22
|
-
(0, _typeorm.Entity)({
|
|
23
|
-
name: 'role'
|
|
24
|
-
})
|
|
25
|
-
], Role);
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "UserIamPermission", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return UserIamPermission;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _typeorm = require("typeorm");
|
|
12
|
-
const _permissionbaseentity = require("./permission-base.entity");
|
|
13
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
14
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
15
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
16
|
-
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;
|
|
17
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
18
|
-
}
|
|
19
|
-
let UserIamPermission = class UserIamPermission extends _permissionbaseentity.PermissionBase {
|
|
20
|
-
};
|
|
21
|
-
UserIamPermission = _ts_decorate([
|
|
22
|
-
(0, _typeorm.Entity)({
|
|
23
|
-
name: 'user_iam_permission'
|
|
24
|
-
}),
|
|
25
|
-
(0, _typeorm.Index)([
|
|
26
|
-
'permissionType',
|
|
27
|
-
'sourceId',
|
|
28
|
-
'targetId'
|
|
29
|
-
], {
|
|
30
|
-
unique: true
|
|
31
|
-
}),
|
|
32
|
-
(0, _typeorm.Index)([
|
|
33
|
-
'sourceId',
|
|
34
|
-
'sourceType'
|
|
35
|
-
]),
|
|
36
|
-
(0, _typeorm.Index)([
|
|
37
|
-
'targetId',
|
|
38
|
-
'targetType'
|
|
39
|
-
]),
|
|
40
|
-
(0, _typeorm.Index)([
|
|
41
|
-
'permissionType'
|
|
42
|
-
])
|
|
43
|
-
], UserIamPermission);
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ActionType Enum - Categorizes actions by their usage context
|
|
3
|
-
*
|
|
4
|
-
* - BACKEND: Actions for API endpoint permissions (cached for PermissionGuard)
|
|
5
|
-
* - FRONTEND: Actions for frontend features (returned in my-permissions API)
|
|
6
|
-
* - BOTH: Actions used for both backend and frontend (cached + returned)
|
|
7
|
-
*/ "use strict";
|
|
8
|
-
Object.defineProperty(exports, "__esModule", {
|
|
9
|
-
value: true
|
|
10
|
-
});
|
|
11
|
-
Object.defineProperty(exports, "ActionType", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function() {
|
|
14
|
-
return ActionType;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
var ActionType = /*#__PURE__*/ function(ActionType) {
|
|
18
|
-
ActionType["BACKEND"] = "backend";
|
|
19
|
-
ActionType["FRONTEND"] = "frontend";
|
|
20
|
-
ActionType["BOTH"] = "both";
|
|
21
|
-
return ActionType;
|
|
22
|
-
}({});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "IamEntityType", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return IamEntityType;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var IamEntityType = /*#__PURE__*/ function(IamEntityType) {
|
|
12
|
-
IamEntityType["USER"] = "user";
|
|
13
|
-
IamEntityType["ROLE"] = "role";
|
|
14
|
-
IamEntityType["ACTION"] = "action";
|
|
15
|
-
IamEntityType["COMPANY"] = "company";
|
|
16
|
-
return IamEntityType;
|
|
17
|
-
}({});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "IamPermissionType", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return IamPermissionType;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var IamPermissionType = /*#__PURE__*/ function(IamPermissionType) {
|
|
12
|
-
IamPermissionType["USER_ROLE"] = "user_role";
|
|
13
|
-
IamPermissionType["ROLE_ACTION"] = "role_action";
|
|
14
|
-
IamPermissionType["USER_ACTION"] = "user_action";
|
|
15
|
-
IamPermissionType["COMPANY_ACTION"] = "company_action";
|
|
16
|
-
return IamPermissionType;
|
|
17
|
-
}({});
|
package/cjs/enums/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
_export_star(require("./action-type.enum"), exports);
|
|
6
|
-
_export_star(require("./iam-entity-type.enum"), exports);
|
|
7
|
-
_export_star(require("./iam-permission-type.enum"), exports);
|
|
8
|
-
_export_star(require("./permission-type.enum"), exports);
|
|
9
|
-
function _export_star(from, to) {
|
|
10
|
-
Object.keys(from).forEach(function(k) {
|
|
11
|
-
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
12
|
-
Object.defineProperty(to, k, {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function() {
|
|
15
|
-
return from[k];
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
return from;
|
|
21
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "IAMPermissionMode", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return IAMPermissionMode;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var IAMPermissionMode = /*#__PURE__*/ function(IAMPermissionMode) {
|
|
12
|
-
IAMPermissionMode[IAMPermissionMode["RBAC"] = 1] = "RBAC";
|
|
13
|
-
IAMPermissionMode[IAMPermissionMode["DIRECT"] = 2] = "DIRECT";
|
|
14
|
-
IAMPermissionMode[IAMPermissionMode["FULL"] = 3] = "FULL";
|
|
15
|
-
return IAMPermissionMode;
|
|
16
|
-
}({});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "validateCompanyAccess", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return validateCompanyAccess;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _common = require("@nestjs/common");
|
|
12
|
-
const _constants = require("@flusys/nestjs-shared/constants");
|
|
13
|
-
function validateCompanyAccess(config, companyId, user, errorMessage = 'You do not have access to this company', messageKey = _constants.AUTH_MESSAGES.COMPANY_NO_ACCESS) {
|
|
14
|
-
if (!config.isCompanyFeatureEnabled() || !companyId) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (user.companyId !== companyId) {
|
|
18
|
-
throw new _common.ForbiddenException({
|
|
19
|
-
message: errorMessage,
|
|
20
|
-
messageKey
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _common = require("@nestjs/common");
|
|
6
|
-
const _constants = require("@flusys/nestjs-shared/constants");
|
|
7
|
-
const _loggedusermock = require("@test-utils/mocks/logged-user.mock");
|
|
8
|
-
const _companyaccesshelper = require("./company-access.helper");
|
|
9
|
-
describe('validateCompanyAccess', ()=>{
|
|
10
|
-
function buildConfig(isCompanyFeatureEnabled) {
|
|
11
|
-
return {
|
|
12
|
-
isCompanyFeatureEnabled: jest.fn().mockReturnValue(isCompanyFeatureEnabled)
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
it('does not throw when company feature is disabled', ()=>{
|
|
16
|
-
const config = buildConfig(false);
|
|
17
|
-
const user = (0, _loggedusermock.buildMockUser)({
|
|
18
|
-
companyId: 'company-uuid-1'
|
|
19
|
-
});
|
|
20
|
-
expect(()=>(0, _companyaccesshelper.validateCompanyAccess)(config, 'company-uuid-2', user)).not.toThrow();
|
|
21
|
-
});
|
|
22
|
-
it('does not throw when companyId is undefined', ()=>{
|
|
23
|
-
const config = buildConfig(true);
|
|
24
|
-
const user = (0, _loggedusermock.buildMockUser)({
|
|
25
|
-
companyId: 'company-uuid-1'
|
|
26
|
-
});
|
|
27
|
-
expect(()=>(0, _companyaccesshelper.validateCompanyAccess)(config, undefined, user)).not.toThrow();
|
|
28
|
-
});
|
|
29
|
-
it('does not throw when the companyId matches the user company', ()=>{
|
|
30
|
-
const config = buildConfig(true);
|
|
31
|
-
const user = (0, _loggedusermock.buildMockUser)({
|
|
32
|
-
companyId: 'company-uuid-1'
|
|
33
|
-
});
|
|
34
|
-
expect(()=>(0, _companyaccesshelper.validateCompanyAccess)(config, 'company-uuid-1', user)).not.toThrow();
|
|
35
|
-
});
|
|
36
|
-
it('throws ForbiddenException with default message/key when the company does not match', ()=>{
|
|
37
|
-
const config = buildConfig(true);
|
|
38
|
-
const user = (0, _loggedusermock.buildMockUser)({
|
|
39
|
-
companyId: 'company-uuid-1'
|
|
40
|
-
});
|
|
41
|
-
try {
|
|
42
|
-
(0, _companyaccesshelper.validateCompanyAccess)(config, 'company-uuid-2', user);
|
|
43
|
-
fail('expected validateCompanyAccess to throw');
|
|
44
|
-
} catch (error) {
|
|
45
|
-
expect(error).toBeInstanceOf(_common.ForbiddenException);
|
|
46
|
-
expect(error.getResponse()).toEqual(expect.objectContaining({
|
|
47
|
-
message: 'You do not have access to this company',
|
|
48
|
-
messageKey: _constants.AUTH_MESSAGES.COMPANY_NO_ACCESS
|
|
49
|
-
}));
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
it('throws with a custom message and messageKey when provided', ()=>{
|
|
53
|
-
const config = buildConfig(true);
|
|
54
|
-
const user = (0, _loggedusermock.buildMockUser)({
|
|
55
|
-
companyId: 'company-uuid-1'
|
|
56
|
-
});
|
|
57
|
-
try {
|
|
58
|
-
(0, _companyaccesshelper.validateCompanyAccess)(config, 'company-uuid-2', user, 'Custom message', 'custom.message.key');
|
|
59
|
-
fail('expected validateCompanyAccess to throw');
|
|
60
|
-
} catch (error) {
|
|
61
|
-
expect(error).toBeInstanceOf(_common.ForbiddenException);
|
|
62
|
-
expect(error.getResponse()).toEqual(expect.objectContaining({
|
|
63
|
-
message: 'Custom message',
|
|
64
|
-
messageKey: 'custom.message.key'
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
});
|
package/cjs/helpers/index.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
_export_star(require("./company-access.helper"), exports);
|
|
6
|
-
_export_star(require("./permission-mode.helper"), exports);
|
|
7
|
-
function _export_star(from, to) {
|
|
8
|
-
Object.keys(from).forEach(function(k) {
|
|
9
|
-
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
10
|
-
Object.defineProperty(to, k, {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function() {
|
|
13
|
-
return from[k];
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
return from;
|
|
19
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "PermissionModeHelper", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return PermissionModeHelper;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _permissiontypeenum = require("../enums/permission-type.enum");
|
|
12
|
-
let PermissionModeHelper = class PermissionModeHelper {
|
|
13
|
-
/**
|
|
14
|
-
* Convert permission mode string to enum value
|
|
15
|
-
*
|
|
16
|
-
* @param modeStr - Permission mode string ('FULL', 'RBAC', 'DIRECT')
|
|
17
|
-
* @returns IAMPermissionMode enum value
|
|
18
|
-
* @default IAMPermissionMode.FULL if invalid/missing
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const mode = PermissionModeHelper.fromString('RBAC');
|
|
23
|
-
* // Returns: IAMPermissionMode.RBAC
|
|
24
|
-
*
|
|
25
|
-
* const mode = PermissionModeHelper.fromString(undefined);
|
|
26
|
-
* // Returns: IAMPermissionMode.FULL (default)
|
|
27
|
-
* ```
|
|
28
|
-
*/ static fromString(modeStr) {
|
|
29
|
-
if (!modeStr) {
|
|
30
|
-
return _permissiontypeenum.IAMPermissionMode.FULL;
|
|
31
|
-
}
|
|
32
|
-
const mode = _permissiontypeenum.IAMPermissionMode[modeStr];
|
|
33
|
-
return mode ?? _permissiontypeenum.IAMPermissionMode.FULL;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Convert enum value to string (for serialization/logging)
|
|
37
|
-
*
|
|
38
|
-
* @param mode - IAMPermissionMode enum value
|
|
39
|
-
* @returns String representation
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const str = PermissionModeHelper.toString(IAMPermissionMode.RBAC);
|
|
44
|
-
* // Returns: 'RBAC'
|
|
45
|
-
* ```
|
|
46
|
-
*/ static toString(mode) {
|
|
47
|
-
return _permissiontypeenum.IAMPermissionMode[mode];
|
|
48
|
-
}
|
|
49
|
-
};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _permissiontypeenum = require("../enums/permission-type.enum");
|
|
6
|
-
const _permissionmodehelper = require("./permission-mode.helper");
|
|
7
|
-
describe('PermissionModeHelper', ()=>{
|
|
8
|
-
describe('fromString', ()=>{
|
|
9
|
-
it('converts "RBAC" to IAMPermissionMode.RBAC', ()=>{
|
|
10
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString('RBAC')).toBe(_permissiontypeenum.IAMPermissionMode.RBAC);
|
|
11
|
-
});
|
|
12
|
-
it('converts "DIRECT" to IAMPermissionMode.DIRECT', ()=>{
|
|
13
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString('DIRECT')).toBe(_permissiontypeenum.IAMPermissionMode.DIRECT);
|
|
14
|
-
});
|
|
15
|
-
it('converts "FULL" to IAMPermissionMode.FULL', ()=>{
|
|
16
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString('FULL')).toBe(_permissiontypeenum.IAMPermissionMode.FULL);
|
|
17
|
-
});
|
|
18
|
-
it('defaults to FULL when the string is undefined', ()=>{
|
|
19
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString(undefined)).toBe(_permissiontypeenum.IAMPermissionMode.FULL);
|
|
20
|
-
});
|
|
21
|
-
it('defaults to FULL when the string is empty', ()=>{
|
|
22
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString('')).toBe(_permissiontypeenum.IAMPermissionMode.FULL);
|
|
23
|
-
});
|
|
24
|
-
it('defaults to FULL when the string is not a known mode', ()=>{
|
|
25
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString('INVALID_MODE')).toBe(_permissiontypeenum.IAMPermissionMode.FULL);
|
|
26
|
-
});
|
|
27
|
-
it('is case-sensitive and falls back to FULL for lowercase input', ()=>{
|
|
28
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString('rbac')).toBe(_permissiontypeenum.IAMPermissionMode.FULL);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
describe('toString', ()=>{
|
|
32
|
-
it('converts IAMPermissionMode.RBAC to "RBAC"', ()=>{
|
|
33
|
-
expect(_permissionmodehelper.PermissionModeHelper.toString(_permissiontypeenum.IAMPermissionMode.RBAC)).toBe('RBAC');
|
|
34
|
-
});
|
|
35
|
-
it('converts IAMPermissionMode.DIRECT to "DIRECT"', ()=>{
|
|
36
|
-
expect(_permissionmodehelper.PermissionModeHelper.toString(_permissiontypeenum.IAMPermissionMode.DIRECT)).toBe('DIRECT');
|
|
37
|
-
});
|
|
38
|
-
it('converts IAMPermissionMode.FULL to "FULL"', ()=>{
|
|
39
|
-
expect(_permissionmodehelper.PermissionModeHelper.toString(_permissiontypeenum.IAMPermissionMode.FULL)).toBe('FULL');
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
describe('round trip', ()=>{
|
|
43
|
-
it('fromString(toString(mode)) returns the original mode for every enum value', ()=>{
|
|
44
|
-
const modes = [
|
|
45
|
-
_permissiontypeenum.IAMPermissionMode.RBAC,
|
|
46
|
-
_permissiontypeenum.IAMPermissionMode.DIRECT,
|
|
47
|
-
_permissiontypeenum.IAMPermissionMode.FULL
|
|
48
|
-
];
|
|
49
|
-
for (const mode of modes){
|
|
50
|
-
expect(_permissionmodehelper.PermissionModeHelper.fromString(_permissionmodehelper.PermissionModeHelper.toString(mode))).toBe(mode);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
});
|
package/cjs/index.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
_export_star(require("./config"), exports);
|
|
6
|
-
_export_star(require("./controllers"), exports);
|
|
7
|
-
_export_star(require("./docs"), exports);
|
|
8
|
-
_export_star(require("./dtos"), exports);
|
|
9
|
-
_export_star(require("./entities"), exports);
|
|
10
|
-
_export_star(require("./enums"), exports);
|
|
11
|
-
_export_star(require("./helpers"), exports);
|
|
12
|
-
_export_star(require("./interfaces"), exports);
|
|
13
|
-
_export_star(require("./modules"), exports);
|
|
14
|
-
_export_star(require("./services"), exports);
|
|
15
|
-
_export_star(require("./types"), exports);
|
|
16
|
-
function _export_star(from, to) {
|
|
17
|
-
Object.keys(from).forEach(function(k) {
|
|
18
|
-
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
19
|
-
Object.defineProperty(to, k, {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function() {
|
|
22
|
-
return from[k];
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
return from;
|
|
28
|
-
}
|
package/cjs/interfaces/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
_export_star(require("./action.interface"), exports);
|
|
6
|
-
_export_star(require("./role.interface"), exports);
|
|
7
|
-
_export_star(require("./iam-module-options.interface"), exports);
|
|
8
|
-
function _export_star(from, to) {
|
|
9
|
-
Object.keys(from).forEach(function(k) {
|
|
10
|
-
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
11
|
-
Object.defineProperty(to, k, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function() {
|
|
14
|
-
return from[k];
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
return from;
|
|
20
|
-
}
|