@tomei/sso 0.60.4-staging.1 → 0.61.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/.commitlintrc.json +22 -22
- package/.gitlab-ci.yml +16 -16
- package/.husky/commit-msg +15 -9
- package/.husky/pre-commit +7 -7
- package/.prettierrc +4 -4
- package/Jenkinsfile +57 -57
- package/README.md +23 -23
- package/__tests__/unit/components/group/group.spec.ts +79 -79
- package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
- package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
- package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +66 -66
- package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
- package/__tests__/unit/components/login-user/l.spec.ts +746 -746
- package/__tests__/unit/components/login-user/login.spec.ts +1164 -1164
- package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
- package/__tests__/unit/components/system/system.spec.ts +254 -254
- package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
- package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
- package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
- package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
- package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
- package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
- package/__tests__/unit/session/session.service.spec.ts +47 -47
- package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
- package/coverage/clover.xml +1452 -1452
- package/coverage/coverage-final.json +47 -47
- package/coverage/lcov-report/base.css +224 -224
- package/coverage/lcov-report/block-navigation.js +87 -87
- package/coverage/lcov-report/components/group/group.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group/group.ts.html +327 -327
- package/coverage/lcov-report/components/group/index.html +130 -130
- package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +321 -321
- package/coverage/lcov-report/components/group-object-privilege/index.html +130 -130
- package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +303 -303
- package/coverage/lcov-report/components/group-privilege/index.html +130 -130
- package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.ts.html +327 -327
- package/coverage/lcov-report/components/group-reporting-user/index.html +130 -130
- package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +309 -309
- package/coverage/lcov-report/components/group-system-access/index.html +130 -130
- package/coverage/lcov-report/components/login-history/index.html +115 -115
- package/coverage/lcov-report/components/login-history/login-history.repository.ts.html +117 -117
- package/coverage/lcov-report/components/login-user/index.html +130 -130
- package/coverage/lcov-report/components/login-user/login-user.ts.html +5007 -5007
- package/coverage/lcov-report/components/login-user/user.repository.ts.html +117 -117
- package/coverage/lcov-report/components/password-hash/index.html +115 -115
- package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +126 -126
- package/coverage/lcov-report/components/system/index.html +130 -130
- package/coverage/lcov-report/components/system/system.repository.ts.html +117 -117
- package/coverage/lcov-report/components/system/system.ts.html +909 -909
- package/coverage/lcov-report/components/system-privilege/index.html +130 -130
- package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +120 -120
- package/coverage/lcov-report/components/system-privilege/system-privilege.ts.html +390 -390
- package/coverage/lcov-report/components/user-group/index.html +130 -130
- package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-group/user-group.ts.html +354 -354
- package/coverage/lcov-report/components/user-object-privilege/index.html +130 -130
- package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +312 -312
- package/coverage/lcov-report/components/user-privilege/index.html +130 -130
- package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +306 -306
- package/coverage/lcov-report/components/user-system-access/index.html +130 -130
- package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +312 -312
- package/coverage/lcov-report/enum/group-type.enum.ts.html +108 -108
- package/coverage/lcov-report/enum/index.html +160 -160
- package/coverage/lcov-report/enum/index.ts.html +93 -93
- package/coverage/lcov-report/enum/user-status.enum.ts.html +105 -105
- package/coverage/lcov-report/enum/yn.enum.ts.html +96 -96
- package/coverage/lcov-report/index.html +370 -370
- package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +333 -333
- package/coverage/lcov-report/models/group-privilege.entity.ts.html +315 -315
- package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +339 -339
- package/coverage/lcov-report/models/group-system-access.entity.ts.html +324 -324
- package/coverage/lcov-report/models/group.entity.ts.html +435 -435
- package/coverage/lcov-report/models/index.html +310 -310
- package/coverage/lcov-report/models/login-history.entity.ts.html +252 -252
- package/coverage/lcov-report/models/staff.entity.ts.html +411 -411
- package/coverage/lcov-report/models/system-privilege.entity.ts.html +354 -354
- package/coverage/lcov-report/models/system.entity.ts.html +423 -423
- package/coverage/lcov-report/models/user-group.entity.ts.html +354 -354
- package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +330 -330
- package/coverage/lcov-report/models/user-privilege.entity.ts.html +315 -315
- package/coverage/lcov-report/models/user-system-access.entity.ts.html +315 -315
- package/coverage/lcov-report/models/user.entity.ts.html +522 -522
- package/coverage/lcov-report/prettify.css +1 -1
- package/coverage/lcov-report/prettify.js +2 -2
- package/coverage/lcov-report/redis-client/index.html +115 -115
- package/coverage/lcov-report/redis-client/redis.service.ts.html +240 -240
- package/coverage/lcov-report/session/index.html +115 -115
- package/coverage/lcov-report/session/session.service.ts.html +246 -246
- package/coverage/lcov-report/sorter.js +196 -196
- package/coverage/lcov.info +2490 -2490
- package/coverage/test-report.xml +128 -128
- package/create-sso-user.sql +39 -39
- package/dist/src/components/login-user/user.js +9 -1
- package/dist/src/components/login-user/user.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.mjs +58 -58
- package/jest.config.js +14 -14
- package/migrations/20240314080602-create-user-table.js +124 -124
- package/migrations/20240314080603-create-user-group-table.js +85 -85
- package/migrations/20240314080604-create-user-user-group-table.js +55 -55
- package/migrations/20240314080605-create-login-history-table.js +53 -53
- package/migrations/20240527064925-create-system-table.js +78 -78
- package/migrations/20240527064926-create-system-privilege-table.js +71 -71
- package/migrations/20240527065342-create-group-table.js +93 -93
- package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
- package/migrations/20240528011551-create-group-system-access-table.js +72 -72
- package/migrations/20240528023018-user-system-access-table.js +75 -75
- package/migrations/20240528032229-user-privilege-table.js +76 -76
- package/migrations/20240528063003-create-group-privilege-table.js +76 -76
- package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
- package/migrations/20240528063107-create-user-object-privilege-table.js +84 -84
- package/migrations/20240528063108-create-api-key-table.js +85 -85
- package/migrations/20241104104802-create-building-table.js +95 -95
- package/migrations/20250108091132-add-area-manager-user-id-to-building-table.js +14 -14
- package/migrations/20250108091133-add-passcode-to-user-table.js +36 -36
- package/migrations/20250210115636-create-user-reporting-hierarchy.js +76 -76
- package/migrations/20250326043818-crate-user-password-history.js +42 -42
- package/package.json +90 -90
- package/sampledotenv +7 -7
- package/sonar-project.properties +22 -22
- package/src/components/api-key/api-key.repository.ts +15 -15
- package/src/components/api-key/api-key.ts +448 -448
- package/src/components/api-key/index.ts +4 -4
- package/src/components/building/building.repository.ts +27 -27
- package/src/components/building/index.ts +2 -2
- package/src/components/group/group.repository.ts +26 -26
- package/src/components/group/group.ts +2284 -2284
- package/src/components/group/index.ts +3 -3
- package/src/components/group-object-privilege/group-object-privilege.repository.ts +25 -25
- package/src/components/group-object-privilege/group-object-privilege.ts +278 -278
- package/src/components/group-object-privilege/index.ts +2 -2
- package/src/components/group-privilege/group-privilege.repository.ts +29 -29
- package/src/components/group-privilege/group-privilege.ts +84 -84
- package/src/components/group-privilege/index.ts +2 -2
- package/src/components/group-reporting-user/group-reporting-user.repository.ts +23 -23
- package/src/components/group-reporting-user/group-reporting-user.ts +506 -506
- package/src/components/group-reporting-user/index.ts +3 -3
- package/src/components/group-system-access/group-system-access.repository.ts +43 -43
- package/src/components/group-system-access/group-system-access.ts +90 -90
- package/src/components/group-system-access/index.ts +2 -2
- package/src/components/index.ts +20 -20
- package/src/components/login-history/index.ts +1 -1
- package/src/components/login-history/login-history.repository.ts +11 -11
- package/src/components/login-user/index.ts +5 -5
- package/src/components/login-user/interfaces/check-user-info-duplicated.interface.ts +7 -7
- package/src/components/login-user/interfaces/index.ts +1 -1
- package/src/components/login-user/interfaces/system-access.interface.ts +13 -13
- package/src/components/login-user/interfaces/user-info.interface.ts +34 -34
- package/src/components/login-user/login-user.ts +362 -362
- package/src/components/login-user/user.repository.ts +11 -11
- package/src/components/login-user/user.ts +3142 -3134
- package/src/components/password-hash/index.ts +2 -2
- package/src/components/password-hash/interfaces/index.ts +1 -1
- package/src/components/password-hash/interfaces/password-hash-service.interface.ts +4 -4
- package/src/components/password-hash/password-hash.service.ts +14 -14
- package/src/components/staff/index.ts +2 -2
- package/src/components/staff/staff.repository.ts +27 -27
- package/src/components/system/index.ts +3 -3
- package/src/components/system/system.repository.ts +11 -11
- package/src/components/system/system.ts +456 -456
- package/src/components/system-privilege/index.ts +4 -4
- package/src/components/system-privilege/system-privilege.repository.ts +18 -18
- package/src/components/system-privilege/system-privilege.ts +541 -541
- package/src/components/user-group/index.ts +2 -2
- package/src/components/user-group/user-group.repository.ts +19 -19
- package/src/components/user-group/user-group.ts +764 -764
- package/src/components/user-object-privilege/index.ts +2 -2
- package/src/components/user-object-privilege/user-object-privilege.repository.ts +11 -11
- package/src/components/user-object-privilege/user-object-privilege.ts +79 -79
- package/src/components/user-password-history/index.ts +2 -2
- package/src/components/user-password-history/user-password-history.repository.ts +39 -39
- package/src/components/user-password-history/user-password-history.ts +187 -187
- package/src/components/user-privilege/index.ts +2 -2
- package/src/components/user-privilege/user-privilege.repository.ts +25 -25
- package/src/components/user-privilege/user-privilege.ts +662 -662
- package/src/components/user-reporting-hierarchy/index.ts +2 -2
- package/src/components/user-reporting-hierarchy/user-reporting-hierarchy.repository.ts +30 -30
- package/src/components/user-reporting-hierarchy/user-reporting-hierarchy.ts +505 -505
- package/src/components/user-system-access/index.ts +2 -2
- package/src/components/user-system-access/user-system-access.repository.ts +41 -41
- package/src/components/user-system-access/user-system-access.ts +717 -717
- package/src/database.ts +15 -15
- package/src/enum/api-key.enum.ts +5 -5
- package/src/enum/building-type.enum.ts +6 -6
- package/src/enum/group-type.enum.ts +8 -8
- package/src/enum/index.ts +6 -6
- package/src/enum/login-status.enum.ts +4 -4
- package/src/enum/object-status.enum.ts +4 -4
- package/src/enum/user-status.enum.ts +7 -7
- package/src/enum/yn.enum.ts +4 -4
- package/src/index.ts +8 -8
- package/src/interfaces/api-key-attr.interface.ts +16 -16
- package/src/interfaces/group-object-privilege.interface.ts +14 -14
- package/src/interfaces/group-privilege.interface.ts +10 -10
- package/src/interfaces/group-reporting-user.interface.ts +11 -11
- package/src/interfaces/group-search-attr.interface.ts +9 -9
- package/src/interfaces/group-system-access.interface.ts +10 -10
- package/src/interfaces/group.interface.ts +17 -17
- package/src/interfaces/index.ts +13 -13
- package/src/interfaces/system-login.interface.ts +6 -6
- package/src/interfaces/system-privilege-search.interface.ts +5 -5
- package/src/interfaces/system-privilege.interface.ts +11 -11
- package/src/interfaces/system-search-attr.interface.ts +5 -5
- package/src/interfaces/system.interface.ts +15 -15
- package/src/interfaces/user-group.interface.ts +12 -12
- package/src/interfaces/user-object-privilege.interface.ts +14 -14
- package/src/interfaces/user-password-history.interface.ts +6 -6
- package/src/interfaces/user-privilege.interface.ts +10 -10
- package/src/interfaces/user-reporting-hierarchy.interface.ts +11 -11
- package/src/interfaces/user-session.interface.ts +5 -5
- package/src/interfaces/user-system-access.interface.ts +10 -10
- package/src/models/api-key-entity.ts +101 -101
- package/src/models/building.entity.ts +103 -103
- package/src/models/group-object-privilege.entity.ts +91 -91
- package/src/models/group-privilege.entity.ts +78 -78
- package/src/models/group-reporting-user.entity.ts +95 -95
- package/src/models/group-system-access.entity.ts +81 -81
- package/src/models/group.entity.ts +127 -127
- package/src/models/login-history.entity.ts +63 -63
- package/src/models/staff.entity.ts +91 -91
- package/src/models/system-privilege.entity.ts +90 -90
- package/src/models/system.entity.ts +113 -113
- package/src/models/user-group.entity.ts +91 -91
- package/src/models/user-object-privilege.entity.ts +90 -90
- package/src/models/user-password-history.ts +51 -51
- package/src/models/user-privilege.entity.ts +78 -78
- package/src/models/user-reporting-hierarchy.entity.ts +102 -102
- package/src/models/user-system-access.entity.ts +87 -87
- package/src/models/user.entity.ts +193 -193
- package/src/redis-client/__mocks__/jest-initial-setup.ts +2 -2
- package/src/redis-client/__mocks__/redis-mock.ts +28 -28
- package/src/redis-client/index.ts +1 -1
- package/src/redis-client/redis.service.ts +75 -75
- package/src/session/index.ts +2 -2
- package/src/session/interfaces/index.ts +1 -1
- package/src/session/interfaces/session-service.interface.ts +26 -26
- package/src/session/session.service.ts +96 -96
- package/src/types/auth-context.ts +10 -10
- package/src/types/index.ts +1 -1
- package/tsconfig.build.json +5 -5
- package/tsconfig.json +23 -23
@@ -1,3 +1,3 @@
|
|
1
|
-
//export all files inside this folder
|
2
|
-
export * from './group';
|
3
|
-
export * from './group.repository';
|
1
|
+
//export all files inside this folder
|
2
|
+
export * from './group';
|
3
|
+
export * from './group.repository';
|
@@ -1,25 +1,25 @@
|
|
1
|
-
import GroupObjectPrivilegeModel from '../../models/group-object-privilege.entity';
|
2
|
-
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
3
|
-
|
4
|
-
export class GroupObjectPrivilegeRepository
|
5
|
-
extends RepositoryBase<GroupObjectPrivilegeModel>
|
6
|
-
implements IRepositoryBase<GroupObjectPrivilegeModel>
|
7
|
-
{
|
8
|
-
constructor() {
|
9
|
-
super(GroupObjectPrivilegeModel);
|
10
|
-
}
|
11
|
-
|
12
|
-
public async delete(
|
13
|
-
where: any,
|
14
|
-
transaction?: any,
|
15
|
-
): Promise<number | undefined> {
|
16
|
-
try {
|
17
|
-
return await GroupObjectPrivilegeModel.destroy({
|
18
|
-
where,
|
19
|
-
transaction,
|
20
|
-
});
|
21
|
-
} catch (error) {
|
22
|
-
throw error;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
}
|
1
|
+
import GroupObjectPrivilegeModel from '../../models/group-object-privilege.entity';
|
2
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
3
|
+
|
4
|
+
export class GroupObjectPrivilegeRepository
|
5
|
+
extends RepositoryBase<GroupObjectPrivilegeModel>
|
6
|
+
implements IRepositoryBase<GroupObjectPrivilegeModel>
|
7
|
+
{
|
8
|
+
constructor() {
|
9
|
+
super(GroupObjectPrivilegeModel);
|
10
|
+
}
|
11
|
+
|
12
|
+
public async delete(
|
13
|
+
where: any,
|
14
|
+
transaction?: any,
|
15
|
+
): Promise<number | undefined> {
|
16
|
+
try {
|
17
|
+
return await GroupObjectPrivilegeModel.destroy({
|
18
|
+
where,
|
19
|
+
transaction,
|
20
|
+
});
|
21
|
+
} catch (error) {
|
22
|
+
throw error;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
@@ -1,278 +1,278 @@
|
|
1
|
-
import { ClassError, ObjectBase } from '@tomei/general';
|
2
|
-
import { GroupObjectPrivilegeRepository } from './group-object-privilege.repository';
|
3
|
-
import { IGroupObjectPrivilegeAttr } from '../../interfaces/group-object-privilege.interface';
|
4
|
-
import { ObjectStatus } from '../../enum/object-status.enum';
|
5
|
-
import { LoginUser } from '../login-user/login-user';
|
6
|
-
import { ApplicationConfig } from '@tomei/config';
|
7
|
-
import { ActionEnum, Activity } from '@tomei/activity-history';
|
8
|
-
|
9
|
-
export class GroupObjectPrivilege extends ObjectBase {
|
10
|
-
TableName = 'sso_GroupObjectPrivilege';
|
11
|
-
ObjectName: string;
|
12
|
-
GroupObjectPrivilegeId: number;
|
13
|
-
GroupCode: string;
|
14
|
-
SystemPrivilegeId: string;
|
15
|
-
ObjectId: string;
|
16
|
-
ObjectType: string;
|
17
|
-
Status: ObjectStatus;
|
18
|
-
private _CreatedAt: Date;
|
19
|
-
private _UpdatedAt: Date;
|
20
|
-
private _CreatedById: number;
|
21
|
-
private _UpdatedById: number;
|
22
|
-
|
23
|
-
get CreatedAt() {
|
24
|
-
return this._CreatedAt;
|
25
|
-
}
|
26
|
-
|
27
|
-
get UpdatedAt() {
|
28
|
-
return this._UpdatedAt;
|
29
|
-
}
|
30
|
-
|
31
|
-
get CreatedById() {
|
32
|
-
return this._CreatedById;
|
33
|
-
}
|
34
|
-
|
35
|
-
get UpdatedById() {
|
36
|
-
return this._UpdatedById;
|
37
|
-
}
|
38
|
-
|
39
|
-
private static _Repository = new GroupObjectPrivilegeRepository();
|
40
|
-
|
41
|
-
constructor(GroupObjectPrivilegeAttr?: IGroupObjectPrivilegeAttr) {
|
42
|
-
super();
|
43
|
-
if (GroupObjectPrivilegeAttr) {
|
44
|
-
this.GroupObjectPrivilegeId =
|
45
|
-
GroupObjectPrivilegeAttr.GroupObjectPrivilegeId;
|
46
|
-
this.GroupCode = GroupObjectPrivilegeAttr.GroupCode;
|
47
|
-
this.SystemPrivilegeId = GroupObjectPrivilegeAttr.SystemPrivilegeId;
|
48
|
-
this.ObjectId = GroupObjectPrivilegeAttr.ObjectId;
|
49
|
-
this.ObjectType = GroupObjectPrivilegeAttr.ObjectType;
|
50
|
-
this.Status = GroupObjectPrivilegeAttr.Status;
|
51
|
-
this._CreatedAt = GroupObjectPrivilegeAttr.CreatedAt;
|
52
|
-
this._UpdatedAt = GroupObjectPrivilegeAttr.UpdatedAt;
|
53
|
-
this._CreatedById = GroupObjectPrivilegeAttr.CreatedById;
|
54
|
-
this._UpdatedById = GroupObjectPrivilegeAttr.UpdatedById;
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
public static async init(
|
59
|
-
dbTransaction?: any,
|
60
|
-
GroupObjectPrivilegeId?: number,
|
61
|
-
) {
|
62
|
-
try {
|
63
|
-
if (GroupObjectPrivilegeId) {
|
64
|
-
const GroupObjectPrivilegeAttr = await this._Repository.findOne({
|
65
|
-
where: { GroupObjectPrivilegeId },
|
66
|
-
transaction: dbTransaction,
|
67
|
-
});
|
68
|
-
if (GroupObjectPrivilegeAttr) {
|
69
|
-
return new GroupObjectPrivilege(
|
70
|
-
GroupObjectPrivilegeAttr.get({ plain: true }),
|
71
|
-
);
|
72
|
-
} else {
|
73
|
-
throw new ClassError(
|
74
|
-
'GroupObjectPrivilege',
|
75
|
-
'GroupObjectPrivilegeErrMsg00',
|
76
|
-
'GroupObjectPrivilege not found',
|
77
|
-
);
|
78
|
-
}
|
79
|
-
}
|
80
|
-
return new GroupObjectPrivilege();
|
81
|
-
} catch (error) {
|
82
|
-
throw error;
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
public static async create(
|
87
|
-
loginUser: LoginUser,
|
88
|
-
dbTransaction: any,
|
89
|
-
groupObjectPrivilege: GroupObjectPrivilege,
|
90
|
-
) {
|
91
|
-
try {
|
92
|
-
// Part 1: Privilege Checking
|
93
|
-
const systemCode =
|
94
|
-
ApplicationConfig.getComponentConfigValue('system-code');
|
95
|
-
const isPrivileged = await loginUser.checkPrivileges(
|
96
|
-
systemCode,
|
97
|
-
'GROUP_OBJECT_PRIVILEGE_CREATE',
|
98
|
-
);
|
99
|
-
|
100
|
-
if (!isPrivileged) {
|
101
|
-
throw new ClassError(
|
102
|
-
'GroupObjectPrivilege',
|
103
|
-
'GroupErrMsg01',
|
104
|
-
'You do not have the privilege to create Group Object Privilege',
|
105
|
-
);
|
106
|
-
}
|
107
|
-
|
108
|
-
// Part 2: Validation
|
109
|
-
// Make sure below variables exists:
|
110
|
-
// Params.groupObjectPrivilege.GroupCode
|
111
|
-
if (!groupObjectPrivilege.GroupCode) {
|
112
|
-
throw new ClassError(
|
113
|
-
'GroupObjectPrivilege',
|
114
|
-
'GroupObjectPrivilegeErrMsg01',
|
115
|
-
'GroupCode is missing.',
|
116
|
-
);
|
117
|
-
}
|
118
|
-
// Params.groupObjectPrivilege.SystemPrivilegeId
|
119
|
-
if (!groupObjectPrivilege.SystemPrivilegeId) {
|
120
|
-
throw new ClassError(
|
121
|
-
'GroupObjectPrivilege',
|
122
|
-
'GroupObjectPrivilegeErrMsg02',
|
123
|
-
'SystemPrivilegeId is missing.',
|
124
|
-
);
|
125
|
-
}
|
126
|
-
// Params.groupObjectPrivilege.ObjectId
|
127
|
-
if (!groupObjectPrivilege.ObjectId) {
|
128
|
-
throw new ClassError(
|
129
|
-
'GroupObjectPrivilege',
|
130
|
-
'GroupObjectPrivilegeErrMsg03',
|
131
|
-
'ObjectId is missing.',
|
132
|
-
);
|
133
|
-
}
|
134
|
-
// Params.groupObjectPrivilege.ObjectType
|
135
|
-
if (!groupObjectPrivilege.ObjectType) {
|
136
|
-
throw new ClassError(
|
137
|
-
'GroupObjectPrivilege',
|
138
|
-
'GroupObjectPrivilegeErrMsg04',
|
139
|
-
'ObjectType is missing.',
|
140
|
-
);
|
141
|
-
}
|
142
|
-
|
143
|
-
// Call GroupObjectPrivilege._Repo findOne
|
144
|
-
const existingGroupObjectPrivilege =
|
145
|
-
await GroupObjectPrivilege._Repository.findOne({
|
146
|
-
where: {
|
147
|
-
GroupCode: groupObjectPrivilege.GroupCode,
|
148
|
-
SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId,
|
149
|
-
ObjectId: groupObjectPrivilege.ObjectId,
|
150
|
-
ObjectType: groupObjectPrivilege.ObjectType,
|
151
|
-
},
|
152
|
-
transaction: dbTransaction,
|
153
|
-
});
|
154
|
-
|
155
|
-
// If GroupObjectPrivilege found, throw new ClassError
|
156
|
-
if (existingGroupObjectPrivilege) {
|
157
|
-
throw new ClassError(
|
158
|
-
'GroupObjectPrivilege',
|
159
|
-
'GroupObjectPrivilegeErrMsg05',
|
160
|
-
'Duplicate GroupObjectPrivilege found.',
|
161
|
-
);
|
162
|
-
}
|
163
|
-
|
164
|
-
// Part 3: Create GroupObjectPrivilege
|
165
|
-
// Initialise new Group instance and populate the attributes
|
166
|
-
const objectAttr = {
|
167
|
-
GroupCode: groupObjectPrivilege.GroupCode,
|
168
|
-
SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId,
|
169
|
-
ObjectId: groupObjectPrivilege.ObjectId,
|
170
|
-
ObjectType: groupObjectPrivilege.ObjectType,
|
171
|
-
Status: ObjectStatus.ACTIVE,
|
172
|
-
CreatedById: loginUser.UserId,
|
173
|
-
CreatedAt: new Date(),
|
174
|
-
UpdatedById: loginUser.UserId,
|
175
|
-
UpdatedAt: new Date(),
|
176
|
-
};
|
177
|
-
const newGroupObjectPrivilege = new GroupObjectPrivilege(objectAttr);
|
178
|
-
|
179
|
-
// Call GroupObjectPrivilege._Repo create method
|
180
|
-
const createdObject = await GroupObjectPrivilege._Repository.create(
|
181
|
-
newGroupObjectPrivilege,
|
182
|
-
{
|
183
|
-
transaction: dbTransaction,
|
184
|
-
},
|
185
|
-
);
|
186
|
-
newGroupObjectPrivilege.GroupObjectPrivilegeId =
|
187
|
-
createdObject.GroupObjectPrivilegeId;
|
188
|
-
|
189
|
-
// Part 4: Record Create Group Activity
|
190
|
-
// Initialise EntityValueBefore variable and set to empty object.
|
191
|
-
const EntityValueBefore = {};
|
192
|
-
// Initialise EntityValueAfter variable and set to new Group instance in Part 3.
|
193
|
-
const EntityValueAfter = objectAttr;
|
194
|
-
// Instantiate new activity from Activity class
|
195
|
-
const activity = new Activity();
|
196
|
-
activity.createId();
|
197
|
-
activity.Action = ActionEnum.CREATE;
|
198
|
-
activity.Description = `Create GroupObjectPrivilege for (${newGroupObjectPrivilege.GroupCode})`;
|
199
|
-
activity.EntityType = 'GroupObjectPrivilege';
|
200
|
-
activity.EntityId =
|
201
|
-
newGroupObjectPrivilege.GroupObjectPrivilegeId.toString();
|
202
|
-
activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
|
203
|
-
activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
|
204
|
-
// Call new activity create method.Make sure to pass the dbTransaction and loginUser.userId.
|
205
|
-
await activity.create(dbTransaction, loginUser.UserId);
|
206
|
-
|
207
|
-
// Return new Group instance
|
208
|
-
return newGroupObjectPrivilege;
|
209
|
-
} catch (error) {
|
210
|
-
throw error;
|
211
|
-
}
|
212
|
-
}
|
213
|
-
|
214
|
-
public async delete(loginUser: LoginUser, dbTransaction: any) {
|
215
|
-
try {
|
216
|
-
//Part 1: Privilege Checking
|
217
|
-
const systemCode =
|
218
|
-
ApplicationConfig.getComponentConfigValue('system-code');
|
219
|
-
const isPrivileged = await loginUser.checkPrivileges(
|
220
|
-
systemCode,
|
221
|
-
'GROUP_OBJECT_PRIVILEGE_DELETE',
|
222
|
-
);
|
223
|
-
|
224
|
-
if (!isPrivileged) {
|
225
|
-
throw new ClassError(
|
226
|
-
'GroupObjectPrivilege',
|
227
|
-
'GroupErrMsg01',
|
228
|
-
'You do not have the privilege to delete Group Object Privilege',
|
229
|
-
);
|
230
|
-
}
|
231
|
-
|
232
|
-
// Part 2: Delete GroupObjectPrivilege
|
233
|
-
// Call GroupObjectPrivilege._Repo delete method by passing:
|
234
|
-
// dbTransaction
|
235
|
-
// GroupObjectPrivilege: this.GroupObjectPrivilegeId
|
236
|
-
|
237
|
-
await GroupObjectPrivilege._Repository.delete(
|
238
|
-
this.GroupObjectPrivilegeId,
|
239
|
-
{
|
240
|
-
transaction: dbTransaction,
|
241
|
-
},
|
242
|
-
);
|
243
|
-
|
244
|
-
// Part 4: Record Create Group Activity
|
245
|
-
// Initialise EntityValueBefore variable and set GroupObjectPrivelege column properties
|
246
|
-
const EntityValueBefore = {
|
247
|
-
GroupCode: this.GroupCode,
|
248
|
-
SystemPrivilegeId: this.SystemPrivilegeId,
|
249
|
-
ObjectId: this.ObjectId,
|
250
|
-
ObjectType: this.ObjectType,
|
251
|
-
Status: this.Status,
|
252
|
-
CreatedById: this.CreatedById,
|
253
|
-
UpdatedById: this.UpdatedById,
|
254
|
-
};
|
255
|
-
|
256
|
-
// Initialise EntityValueAfter variable and set empty object
|
257
|
-
const EntityValueAfter = {};
|
258
|
-
|
259
|
-
// Instantiate new activity from Activity class
|
260
|
-
const activity = new Activity();
|
261
|
-
activity.createId();
|
262
|
-
activity.Action = ActionEnum.DELETE;
|
263
|
-
activity.Description = `Delete GroupObjectPrivilege ${this.GroupObjectPrivilegeId}`;
|
264
|
-
activity.EntityType = 'GroupObjectPrivilege';
|
265
|
-
activity.EntityId = this.GroupObjectPrivilegeId.toString();
|
266
|
-
activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
|
267
|
-
activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
|
268
|
-
|
269
|
-
// Call new activity create method.Make sure to pass the dbTransaction and LoginUser.userId.
|
270
|
-
await activity.create(dbTransaction, loginUser.UserId);
|
271
|
-
|
272
|
-
// Return this
|
273
|
-
return this;
|
274
|
-
} catch (error) {
|
275
|
-
throw error;
|
276
|
-
}
|
277
|
-
}
|
278
|
-
}
|
1
|
+
import { ClassError, ObjectBase } from '@tomei/general';
|
2
|
+
import { GroupObjectPrivilegeRepository } from './group-object-privilege.repository';
|
3
|
+
import { IGroupObjectPrivilegeAttr } from '../../interfaces/group-object-privilege.interface';
|
4
|
+
import { ObjectStatus } from '../../enum/object-status.enum';
|
5
|
+
import { LoginUser } from '../login-user/login-user';
|
6
|
+
import { ApplicationConfig } from '@tomei/config';
|
7
|
+
import { ActionEnum, Activity } from '@tomei/activity-history';
|
8
|
+
|
9
|
+
export class GroupObjectPrivilege extends ObjectBase {
|
10
|
+
TableName = 'sso_GroupObjectPrivilege';
|
11
|
+
ObjectName: string;
|
12
|
+
GroupObjectPrivilegeId: number;
|
13
|
+
GroupCode: string;
|
14
|
+
SystemPrivilegeId: string;
|
15
|
+
ObjectId: string;
|
16
|
+
ObjectType: string;
|
17
|
+
Status: ObjectStatus;
|
18
|
+
private _CreatedAt: Date;
|
19
|
+
private _UpdatedAt: Date;
|
20
|
+
private _CreatedById: number;
|
21
|
+
private _UpdatedById: number;
|
22
|
+
|
23
|
+
get CreatedAt() {
|
24
|
+
return this._CreatedAt;
|
25
|
+
}
|
26
|
+
|
27
|
+
get UpdatedAt() {
|
28
|
+
return this._UpdatedAt;
|
29
|
+
}
|
30
|
+
|
31
|
+
get CreatedById() {
|
32
|
+
return this._CreatedById;
|
33
|
+
}
|
34
|
+
|
35
|
+
get UpdatedById() {
|
36
|
+
return this._UpdatedById;
|
37
|
+
}
|
38
|
+
|
39
|
+
private static _Repository = new GroupObjectPrivilegeRepository();
|
40
|
+
|
41
|
+
constructor(GroupObjectPrivilegeAttr?: IGroupObjectPrivilegeAttr) {
|
42
|
+
super();
|
43
|
+
if (GroupObjectPrivilegeAttr) {
|
44
|
+
this.GroupObjectPrivilegeId =
|
45
|
+
GroupObjectPrivilegeAttr.GroupObjectPrivilegeId;
|
46
|
+
this.GroupCode = GroupObjectPrivilegeAttr.GroupCode;
|
47
|
+
this.SystemPrivilegeId = GroupObjectPrivilegeAttr.SystemPrivilegeId;
|
48
|
+
this.ObjectId = GroupObjectPrivilegeAttr.ObjectId;
|
49
|
+
this.ObjectType = GroupObjectPrivilegeAttr.ObjectType;
|
50
|
+
this.Status = GroupObjectPrivilegeAttr.Status;
|
51
|
+
this._CreatedAt = GroupObjectPrivilegeAttr.CreatedAt;
|
52
|
+
this._UpdatedAt = GroupObjectPrivilegeAttr.UpdatedAt;
|
53
|
+
this._CreatedById = GroupObjectPrivilegeAttr.CreatedById;
|
54
|
+
this._UpdatedById = GroupObjectPrivilegeAttr.UpdatedById;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
public static async init(
|
59
|
+
dbTransaction?: any,
|
60
|
+
GroupObjectPrivilegeId?: number,
|
61
|
+
) {
|
62
|
+
try {
|
63
|
+
if (GroupObjectPrivilegeId) {
|
64
|
+
const GroupObjectPrivilegeAttr = await this._Repository.findOne({
|
65
|
+
where: { GroupObjectPrivilegeId },
|
66
|
+
transaction: dbTransaction,
|
67
|
+
});
|
68
|
+
if (GroupObjectPrivilegeAttr) {
|
69
|
+
return new GroupObjectPrivilege(
|
70
|
+
GroupObjectPrivilegeAttr.get({ plain: true }),
|
71
|
+
);
|
72
|
+
} else {
|
73
|
+
throw new ClassError(
|
74
|
+
'GroupObjectPrivilege',
|
75
|
+
'GroupObjectPrivilegeErrMsg00',
|
76
|
+
'GroupObjectPrivilege not found',
|
77
|
+
);
|
78
|
+
}
|
79
|
+
}
|
80
|
+
return new GroupObjectPrivilege();
|
81
|
+
} catch (error) {
|
82
|
+
throw error;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
public static async create(
|
87
|
+
loginUser: LoginUser,
|
88
|
+
dbTransaction: any,
|
89
|
+
groupObjectPrivilege: GroupObjectPrivilege,
|
90
|
+
) {
|
91
|
+
try {
|
92
|
+
// Part 1: Privilege Checking
|
93
|
+
const systemCode =
|
94
|
+
ApplicationConfig.getComponentConfigValue('system-code');
|
95
|
+
const isPrivileged = await loginUser.checkPrivileges(
|
96
|
+
systemCode,
|
97
|
+
'GROUP_OBJECT_PRIVILEGE_CREATE',
|
98
|
+
);
|
99
|
+
|
100
|
+
if (!isPrivileged) {
|
101
|
+
throw new ClassError(
|
102
|
+
'GroupObjectPrivilege',
|
103
|
+
'GroupErrMsg01',
|
104
|
+
'You do not have the privilege to create Group Object Privilege',
|
105
|
+
);
|
106
|
+
}
|
107
|
+
|
108
|
+
// Part 2: Validation
|
109
|
+
// Make sure below variables exists:
|
110
|
+
// Params.groupObjectPrivilege.GroupCode
|
111
|
+
if (!groupObjectPrivilege.GroupCode) {
|
112
|
+
throw new ClassError(
|
113
|
+
'GroupObjectPrivilege',
|
114
|
+
'GroupObjectPrivilegeErrMsg01',
|
115
|
+
'GroupCode is missing.',
|
116
|
+
);
|
117
|
+
}
|
118
|
+
// Params.groupObjectPrivilege.SystemPrivilegeId
|
119
|
+
if (!groupObjectPrivilege.SystemPrivilegeId) {
|
120
|
+
throw new ClassError(
|
121
|
+
'GroupObjectPrivilege',
|
122
|
+
'GroupObjectPrivilegeErrMsg02',
|
123
|
+
'SystemPrivilegeId is missing.',
|
124
|
+
);
|
125
|
+
}
|
126
|
+
// Params.groupObjectPrivilege.ObjectId
|
127
|
+
if (!groupObjectPrivilege.ObjectId) {
|
128
|
+
throw new ClassError(
|
129
|
+
'GroupObjectPrivilege',
|
130
|
+
'GroupObjectPrivilegeErrMsg03',
|
131
|
+
'ObjectId is missing.',
|
132
|
+
);
|
133
|
+
}
|
134
|
+
// Params.groupObjectPrivilege.ObjectType
|
135
|
+
if (!groupObjectPrivilege.ObjectType) {
|
136
|
+
throw new ClassError(
|
137
|
+
'GroupObjectPrivilege',
|
138
|
+
'GroupObjectPrivilegeErrMsg04',
|
139
|
+
'ObjectType is missing.',
|
140
|
+
);
|
141
|
+
}
|
142
|
+
|
143
|
+
// Call GroupObjectPrivilege._Repo findOne
|
144
|
+
const existingGroupObjectPrivilege =
|
145
|
+
await GroupObjectPrivilege._Repository.findOne({
|
146
|
+
where: {
|
147
|
+
GroupCode: groupObjectPrivilege.GroupCode,
|
148
|
+
SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId,
|
149
|
+
ObjectId: groupObjectPrivilege.ObjectId,
|
150
|
+
ObjectType: groupObjectPrivilege.ObjectType,
|
151
|
+
},
|
152
|
+
transaction: dbTransaction,
|
153
|
+
});
|
154
|
+
|
155
|
+
// If GroupObjectPrivilege found, throw new ClassError
|
156
|
+
if (existingGroupObjectPrivilege) {
|
157
|
+
throw new ClassError(
|
158
|
+
'GroupObjectPrivilege',
|
159
|
+
'GroupObjectPrivilegeErrMsg05',
|
160
|
+
'Duplicate GroupObjectPrivilege found.',
|
161
|
+
);
|
162
|
+
}
|
163
|
+
|
164
|
+
// Part 3: Create GroupObjectPrivilege
|
165
|
+
// Initialise new Group instance and populate the attributes
|
166
|
+
const objectAttr = {
|
167
|
+
GroupCode: groupObjectPrivilege.GroupCode,
|
168
|
+
SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId,
|
169
|
+
ObjectId: groupObjectPrivilege.ObjectId,
|
170
|
+
ObjectType: groupObjectPrivilege.ObjectType,
|
171
|
+
Status: ObjectStatus.ACTIVE,
|
172
|
+
CreatedById: loginUser.UserId,
|
173
|
+
CreatedAt: new Date(),
|
174
|
+
UpdatedById: loginUser.UserId,
|
175
|
+
UpdatedAt: new Date(),
|
176
|
+
};
|
177
|
+
const newGroupObjectPrivilege = new GroupObjectPrivilege(objectAttr);
|
178
|
+
|
179
|
+
// Call GroupObjectPrivilege._Repo create method
|
180
|
+
const createdObject = await GroupObjectPrivilege._Repository.create(
|
181
|
+
newGroupObjectPrivilege,
|
182
|
+
{
|
183
|
+
transaction: dbTransaction,
|
184
|
+
},
|
185
|
+
);
|
186
|
+
newGroupObjectPrivilege.GroupObjectPrivilegeId =
|
187
|
+
createdObject.GroupObjectPrivilegeId;
|
188
|
+
|
189
|
+
// Part 4: Record Create Group Activity
|
190
|
+
// Initialise EntityValueBefore variable and set to empty object.
|
191
|
+
const EntityValueBefore = {};
|
192
|
+
// Initialise EntityValueAfter variable and set to new Group instance in Part 3.
|
193
|
+
const EntityValueAfter = objectAttr;
|
194
|
+
// Instantiate new activity from Activity class
|
195
|
+
const activity = new Activity();
|
196
|
+
activity.createId();
|
197
|
+
activity.Action = ActionEnum.CREATE;
|
198
|
+
activity.Description = `Create GroupObjectPrivilege for (${newGroupObjectPrivilege.GroupCode})`;
|
199
|
+
activity.EntityType = 'GroupObjectPrivilege';
|
200
|
+
activity.EntityId =
|
201
|
+
newGroupObjectPrivilege.GroupObjectPrivilegeId.toString();
|
202
|
+
activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
|
203
|
+
activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
|
204
|
+
// Call new activity create method.Make sure to pass the dbTransaction and loginUser.userId.
|
205
|
+
await activity.create(dbTransaction, loginUser.UserId);
|
206
|
+
|
207
|
+
// Return new Group instance
|
208
|
+
return newGroupObjectPrivilege;
|
209
|
+
} catch (error) {
|
210
|
+
throw error;
|
211
|
+
}
|
212
|
+
}
|
213
|
+
|
214
|
+
public async delete(loginUser: LoginUser, dbTransaction: any) {
|
215
|
+
try {
|
216
|
+
//Part 1: Privilege Checking
|
217
|
+
const systemCode =
|
218
|
+
ApplicationConfig.getComponentConfigValue('system-code');
|
219
|
+
const isPrivileged = await loginUser.checkPrivileges(
|
220
|
+
systemCode,
|
221
|
+
'GROUP_OBJECT_PRIVILEGE_DELETE',
|
222
|
+
);
|
223
|
+
|
224
|
+
if (!isPrivileged) {
|
225
|
+
throw new ClassError(
|
226
|
+
'GroupObjectPrivilege',
|
227
|
+
'GroupErrMsg01',
|
228
|
+
'You do not have the privilege to delete Group Object Privilege',
|
229
|
+
);
|
230
|
+
}
|
231
|
+
|
232
|
+
// Part 2: Delete GroupObjectPrivilege
|
233
|
+
// Call GroupObjectPrivilege._Repo delete method by passing:
|
234
|
+
// dbTransaction
|
235
|
+
// GroupObjectPrivilege: this.GroupObjectPrivilegeId
|
236
|
+
|
237
|
+
await GroupObjectPrivilege._Repository.delete(
|
238
|
+
this.GroupObjectPrivilegeId,
|
239
|
+
{
|
240
|
+
transaction: dbTransaction,
|
241
|
+
},
|
242
|
+
);
|
243
|
+
|
244
|
+
// Part 4: Record Create Group Activity
|
245
|
+
// Initialise EntityValueBefore variable and set GroupObjectPrivelege column properties
|
246
|
+
const EntityValueBefore = {
|
247
|
+
GroupCode: this.GroupCode,
|
248
|
+
SystemPrivilegeId: this.SystemPrivilegeId,
|
249
|
+
ObjectId: this.ObjectId,
|
250
|
+
ObjectType: this.ObjectType,
|
251
|
+
Status: this.Status,
|
252
|
+
CreatedById: this.CreatedById,
|
253
|
+
UpdatedById: this.UpdatedById,
|
254
|
+
};
|
255
|
+
|
256
|
+
// Initialise EntityValueAfter variable and set empty object
|
257
|
+
const EntityValueAfter = {};
|
258
|
+
|
259
|
+
// Instantiate new activity from Activity class
|
260
|
+
const activity = new Activity();
|
261
|
+
activity.createId();
|
262
|
+
activity.Action = ActionEnum.DELETE;
|
263
|
+
activity.Description = `Delete GroupObjectPrivilege ${this.GroupObjectPrivilegeId}`;
|
264
|
+
activity.EntityType = 'GroupObjectPrivilege';
|
265
|
+
activity.EntityId = this.GroupObjectPrivilegeId.toString();
|
266
|
+
activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
|
267
|
+
activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
|
268
|
+
|
269
|
+
// Call new activity create method.Make sure to pass the dbTransaction and LoginUser.userId.
|
270
|
+
await activity.create(dbTransaction, loginUser.UserId);
|
271
|
+
|
272
|
+
// Return this
|
273
|
+
return this;
|
274
|
+
} catch (error) {
|
275
|
+
throw error;
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export * from './group-object-privilege';
|
2
|
-
export * from './group-object-privilege.repository';
|
1
|
+
export * from './group-object-privilege';
|
2
|
+
export * from './group-object-privilege.repository';
|