@tomei/sso 0.33.8 → 0.34.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.eslintrc +16 -16
  3. package/.eslintrc.js +35 -35
  4. package/.gitlab-ci.yml +16 -16
  5. package/.husky/commit-msg +15 -15
  6. package/.husky/pre-commit +7 -7
  7. package/.prettierrc +4 -4
  8. package/Jenkinsfile +57 -57
  9. package/README.md +23 -23
  10. package/__tests__/unit/components/group/group.spec.ts +79 -79
  11. package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
  12. package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
  13. package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +66 -66
  14. package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
  15. package/__tests__/unit/components/login-user/l.spec.ts +746 -746
  16. package/__tests__/unit/components/login-user/login.spec.ts +1064 -1064
  17. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
  18. package/__tests__/unit/components/system/system.spec.ts +254 -254
  19. package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
  20. package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
  21. package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
  22. package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
  23. package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
  24. package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
  25. package/__tests__/unit/session/session.service.spec.ts +47 -47
  26. package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
  27. package/coverage/clover.xml +1452 -1452
  28. package/coverage/coverage-final.json +47 -47
  29. package/coverage/lcov-report/base.css +224 -224
  30. package/coverage/lcov-report/block-navigation.js +87 -87
  31. package/coverage/lcov-report/components/group/group.repository.ts.html +117 -117
  32. package/coverage/lcov-report/components/group/group.ts.html +327 -327
  33. package/coverage/lcov-report/components/group/index.html +130 -130
  34. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +117 -117
  35. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +321 -321
  36. package/coverage/lcov-report/components/group-object-privilege/index.html +130 -130
  37. package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +117 -117
  38. package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +303 -303
  39. package/coverage/lcov-report/components/group-privilege/index.html +130 -130
  40. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.repository.ts.html +117 -117
  41. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.ts.html +327 -327
  42. package/coverage/lcov-report/components/group-reporting-user/index.html +130 -130
  43. package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +117 -117
  44. package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +309 -309
  45. package/coverage/lcov-report/components/group-system-access/index.html +130 -130
  46. package/coverage/lcov-report/components/login-history/index.html +115 -115
  47. package/coverage/lcov-report/components/login-history/login-history.repository.ts.html +117 -117
  48. package/coverage/lcov-report/components/login-user/index.html +130 -130
  49. package/coverage/lcov-report/components/login-user/login-user.ts.html +5007 -5007
  50. package/coverage/lcov-report/components/login-user/user.repository.ts.html +117 -117
  51. package/coverage/lcov-report/components/password-hash/index.html +115 -115
  52. package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +126 -126
  53. package/coverage/lcov-report/components/system/index.html +130 -130
  54. package/coverage/lcov-report/components/system/system.repository.ts.html +117 -117
  55. package/coverage/lcov-report/components/system/system.ts.html +909 -909
  56. package/coverage/lcov-report/components/system-privilege/index.html +130 -130
  57. package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +120 -120
  58. package/coverage/lcov-report/components/system-privilege/system-privilege.ts.html +390 -390
  59. package/coverage/lcov-report/components/user-group/index.html +130 -130
  60. package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +117 -117
  61. package/coverage/lcov-report/components/user-group/user-group.ts.html +354 -354
  62. package/coverage/lcov-report/components/user-object-privilege/index.html +130 -130
  63. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +117 -117
  64. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +312 -312
  65. package/coverage/lcov-report/components/user-privilege/index.html +130 -130
  66. package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +117 -117
  67. package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +306 -306
  68. package/coverage/lcov-report/components/user-system-access/index.html +130 -130
  69. package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +117 -117
  70. package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +312 -312
  71. package/coverage/lcov-report/enum/group-type.enum.ts.html +108 -108
  72. package/coverage/lcov-report/enum/index.html +160 -160
  73. package/coverage/lcov-report/enum/index.ts.html +93 -93
  74. package/coverage/lcov-report/enum/user-status.enum.ts.html +105 -105
  75. package/coverage/lcov-report/enum/yn.enum.ts.html +96 -96
  76. package/coverage/lcov-report/index.html +370 -370
  77. package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +333 -333
  78. package/coverage/lcov-report/models/group-privilege.entity.ts.html +315 -315
  79. package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +339 -339
  80. package/coverage/lcov-report/models/group-system-access.entity.ts.html +324 -324
  81. package/coverage/lcov-report/models/group.entity.ts.html +435 -435
  82. package/coverage/lcov-report/models/index.html +310 -310
  83. package/coverage/lcov-report/models/login-history.entity.ts.html +252 -252
  84. package/coverage/lcov-report/models/staff.entity.ts.html +411 -411
  85. package/coverage/lcov-report/models/system-privilege.entity.ts.html +354 -354
  86. package/coverage/lcov-report/models/system.entity.ts.html +423 -423
  87. package/coverage/lcov-report/models/user-group.entity.ts.html +354 -354
  88. package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +330 -330
  89. package/coverage/lcov-report/models/user-privilege.entity.ts.html +315 -315
  90. package/coverage/lcov-report/models/user-system-access.entity.ts.html +315 -315
  91. package/coverage/lcov-report/models/user.entity.ts.html +522 -522
  92. package/coverage/lcov-report/prettify.css +1 -1
  93. package/coverage/lcov-report/prettify.js +2 -2
  94. package/coverage/lcov-report/redis-client/index.html +115 -115
  95. package/coverage/lcov-report/redis-client/redis.service.ts.html +240 -240
  96. package/coverage/lcov-report/session/index.html +115 -115
  97. package/coverage/lcov-report/session/session.service.ts.html +246 -246
  98. package/coverage/lcov-report/sorter.js +196 -196
  99. package/coverage/lcov.info +2490 -2490
  100. package/coverage/test-report.xml +128 -128
  101. package/create-sso-user.sql +39 -39
  102. package/dist/src/components/group/group.d.ts +1 -0
  103. package/dist/src/components/group/group.js +45 -18
  104. package/dist/src/components/group/group.js.map +1 -1
  105. package/dist/src/components/group-object-privilege/group-object-privilege.js +4 -2
  106. package/dist/src/components/group-object-privilege/group-object-privilege.js.map +1 -1
  107. package/dist/src/components/group-object-privilege/group-object-privilege.repository.js.map +1 -1
  108. package/dist/src/components/group-privilege/group-privilege.repository.js.map +1 -1
  109. package/dist/src/components/login-user/login-user.d.ts +1 -1
  110. package/dist/src/components/system-privilege/system-privilege.js +1 -1
  111. package/dist/src/components/system-privilege/system-privilege.js.map +1 -1
  112. package/dist/src/components/user-object-privilege/user-object-privilege.js.map +1 -1
  113. package/dist/src/interfaces/group-search-attr.interface.d.ts +1 -0
  114. package/dist/tsconfig.tsbuildinfo +1 -1
  115. package/jest.config.js +14 -14
  116. package/migrations/20240314080602-create-user-table.js +108 -108
  117. package/migrations/20240314080603-create-user-group-table.js +85 -85
  118. package/migrations/20240314080604-create-user-user-group-table.js +55 -55
  119. package/migrations/20240314080605-create-login-history-table.js +53 -53
  120. package/migrations/20240527064925-create-system-table.js +78 -78
  121. package/migrations/20240527064926-create-system-privilege-table.js +67 -67
  122. package/migrations/20240527065342-create-group-table.js +89 -89
  123. package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
  124. package/migrations/20240528011551-create-group-system-access-table.js +72 -72
  125. package/migrations/20240528023018-user-system-access-table.js +75 -75
  126. package/migrations/20240528032229-user-privilege-table.js +75 -75
  127. package/migrations/20240528063003-create-group-privilege-table.js +75 -75
  128. package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
  129. package/migrations/20240528063107-create-user-object-privilege-table.js +83 -83
  130. package/package.json +89 -89
  131. package/sampledotenv +7 -7
  132. package/sonar-project.properties +22 -22
  133. package/src/components/group/group.ts +1514 -1456
  134. package/src/components/group-object-privilege/group-object-privilege.repository.ts +3 -2
  135. package/src/components/group-object-privilege/group-object-privilege.ts +44 -31
  136. package/src/components/group-privilege/group-privilege.repository.ts +2 -1
  137. package/src/components/system-privilege/system-privilege.ts +7 -4
  138. package/src/components/user-object-privilege/user-object-privilege.ts +0 -1
  139. package/src/interfaces/group-object-privilege.interface.ts +14 -14
  140. package/src/interfaces/group-search-attr.interface.ts +1 -0
  141. package/src/interfaces/system-privilege-search.interface.ts +5 -5
  142. package/src/models/group-system-access.entity.ts +81 -81
  143. package/tsconfig.build.json +5 -5
  144. package/tsconfig.json +22 -22
  145. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.d.ts +0 -1
  146. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +0 -71
  147. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +0 -1
  148. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
  149. package/dist/__tests__/unit/components/login-user/login-user.spec.js +0 -6
  150. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +0 -1
@@ -3,14 +3,15 @@ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
3
3
 
4
4
  export class GroupObjectPrivilegeRepository
5
5
  extends RepositoryBase<GroupObjectPrivilegeModel>
6
- implements IRepositoryBase<GroupObjectPrivilegeModel> {
6
+ implements IRepositoryBase<GroupObjectPrivilegeModel>
7
+ {
7
8
  constructor() {
8
9
  super(GroupObjectPrivilegeModel);
9
10
  }
10
11
 
11
12
  public async delete(
12
13
  where: any,
13
- transaction?: any
14
+ transaction?: any,
14
15
  ): Promise<number | undefined> {
15
16
  try {
16
17
  return await GroupObjectPrivilegeModel.destroy({
@@ -83,10 +83,15 @@ export class GroupObjectPrivilege extends ObjectBase {
83
83
  }
84
84
  }
85
85
 
86
- public static async create(loginUser: LoginUser, dbTransaction: any, groupObjectPrivilege: GroupObjectPrivilege) {
86
+ public static async create(
87
+ loginUser: LoginUser,
88
+ dbTransaction: any,
89
+ groupObjectPrivilege: GroupObjectPrivilege,
90
+ ) {
87
91
  try {
88
92
  // Part 1: Privilege Checking
89
- const systemCode = ApplicationConfig.getComponentConfigValue('system-code');
93
+ const systemCode =
94
+ ApplicationConfig.getComponentConfigValue('system-code');
90
95
  const isPrivileged = await loginUser.checkPrivileges(
91
96
  systemCode,
92
97
  'GROUP_OBJECT_PRIVILEGE_CREATE',
@@ -100,7 +105,6 @@ export class GroupObjectPrivilege extends ObjectBase {
100
105
  );
101
106
  }
102
107
 
103
-
104
108
  // Part 2: Validation
105
109
  // Make sure below variables exists:
106
110
  // Params.groupObjectPrivilege.GroupCode
@@ -137,15 +141,16 @@ export class GroupObjectPrivilege extends ObjectBase {
137
141
  }
138
142
 
139
143
  // Call GroupObjectPrivilege._Repo findOne
140
- const existingGroupObjectPrivilege = await GroupObjectPrivilege._Repository.findOne({
141
- where: {
142
- GroupCode: groupObjectPrivilege.GroupCode,
143
- PrivilegeCode: groupObjectPrivilege.PrivilegeCode,
144
- ObjectId: groupObjectPrivilege.ObjectId,
145
- ObjectType: groupObjectPrivilege.ObjectType,
146
- },
147
- transaction: dbTransaction,
148
- });
144
+ const existingGroupObjectPrivilege =
145
+ await GroupObjectPrivilege._Repository.findOne({
146
+ where: {
147
+ GroupCode: groupObjectPrivilege.GroupCode,
148
+ PrivilegeCode: groupObjectPrivilege.PrivilegeCode,
149
+ ObjectId: groupObjectPrivilege.ObjectId,
150
+ ObjectType: groupObjectPrivilege.ObjectType,
151
+ },
152
+ transaction: dbTransaction,
153
+ });
149
154
 
150
155
  // If GroupObjectPrivilege found, throw new ClassError
151
156
  if (existingGroupObjectPrivilege) {
@@ -172,27 +177,31 @@ export class GroupObjectPrivilege extends ObjectBase {
172
177
  const newGroupObjectPrivilege = new GroupObjectPrivilege(objectAttr);
173
178
 
174
179
  // Call GroupObjectPrivilege._Repo create method
175
- const createdObject = await GroupObjectPrivilege._Repository.create(newGroupObjectPrivilege, {
176
- transaction: dbTransaction,
177
- });
178
- newGroupObjectPrivilege.GroupObjectPrivilegeId = createdObject.GroupObjectPrivilegeId;
179
-
180
+ const createdObject = await GroupObjectPrivilege._Repository.create(
181
+ newGroupObjectPrivilege,
182
+ {
183
+ transaction: dbTransaction,
184
+ },
185
+ );
186
+ newGroupObjectPrivilege.GroupObjectPrivilegeId =
187
+ createdObject.GroupObjectPrivilegeId;
180
188
 
181
189
  // Part 4: Record Create Group Activity
182
- // Initialise EntityValueBefore variable and set to empty object.
190
+ // Initialise EntityValueBefore variable and set to empty object.
183
191
  const EntityValueBefore = {};
184
- // Initialise EntityValueAfter variable and set to new Group instance in Part 3.
192
+ // Initialise EntityValueAfter variable and set to new Group instance in Part 3.
185
193
  const EntityValueAfter = objectAttr;
186
- // Instantiate new activity from Activity class
194
+ // Instantiate new activity from Activity class
187
195
  const activity = new Activity();
188
196
  activity.createId();
189
197
  activity.Action = ActionEnum.ADD;
190
198
  activity.Description = `Create GroupObjectPrivilege for (${newGroupObjectPrivilege.GroupCode})`;
191
199
  activity.EntityType = 'GroupObjectPrivilege';
192
- activity.EntityId = newGroupObjectPrivilege.GroupObjectPrivilegeId.toString();
200
+ activity.EntityId =
201
+ newGroupObjectPrivilege.GroupObjectPrivilegeId.toString();
193
202
  activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
194
203
  activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
195
- // Call new activity create method.Make sure to pass the dbTransaction and loginUser.userId.
204
+ // Call new activity create method.Make sure to pass the dbTransaction and loginUser.userId.
196
205
  await activity.create(dbTransaction, loginUser.UserId);
197
206
 
198
207
  // Return new Group instance
@@ -205,7 +214,8 @@ export class GroupObjectPrivilege extends ObjectBase {
205
214
  public async delete(loginUser: LoginUser, dbTransaction: any) {
206
215
  try {
207
216
  //Part 1: Privilege Checking
208
- const systemCode = ApplicationConfig.getComponentConfigValue('system-code');
217
+ const systemCode =
218
+ ApplicationConfig.getComponentConfigValue('system-code');
209
219
  const isPrivileged = await loginUser.checkPrivileges(
210
220
  systemCode,
211
221
  'GROUP_OBJECT_PRIVILEGE_DELETE',
@@ -224,12 +234,15 @@ export class GroupObjectPrivilege extends ObjectBase {
224
234
  // dbTransaction
225
235
  // GroupObjectPrivilege: this.GroupObjectPrivilegeId
226
236
 
227
- await GroupObjectPrivilege._Repository.delete(this.GroupObjectPrivilegeId, {
228
- transaction: dbTransaction,
229
- });
237
+ await GroupObjectPrivilege._Repository.delete(
238
+ this.GroupObjectPrivilegeId,
239
+ {
240
+ transaction: dbTransaction,
241
+ },
242
+ );
230
243
 
231
244
  // Part 4: Record Create Group Activity
232
- // Initialise EntityValueBefore variable and set GroupObjectPrivelege column properties
245
+ // Initialise EntityValueBefore variable and set GroupObjectPrivelege column properties
233
246
  const EntityValueBefore = {
234
247
  GroupCode: this.GroupCode,
235
248
  PrivilegeCode: this.PrivilegeCode,
@@ -240,10 +253,10 @@ export class GroupObjectPrivilege extends ObjectBase {
240
253
  UpdatedById: this.UpdatedById,
241
254
  };
242
255
 
243
- // Initialise EntityValueAfter variable and set empty object
256
+ // Initialise EntityValueAfter variable and set empty object
244
257
  const EntityValueAfter = {};
245
-
246
- // Instantiate new activity from Activity class
258
+
259
+ // Instantiate new activity from Activity class
247
260
  const activity = new Activity();
248
261
  activity.createId();
249
262
  activity.Action = ActionEnum.DELETE;
@@ -253,7 +266,7 @@ export class GroupObjectPrivilege extends ObjectBase {
253
266
  activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
254
267
  activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
255
268
 
256
- // Call new activity create method.Make sure to pass the dbTransaction and LoginUser.userId.
269
+ // Call new activity create method.Make sure to pass the dbTransaction and LoginUser.userId.
257
270
  await activity.create(dbTransaction, loginUser.UserId);
258
271
 
259
272
  // Return this
@@ -3,7 +3,8 @@ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
3
3
 
4
4
  export class GroupPrivilegeRepository
5
5
  extends RepositoryBase<GroupPrivilegeModel>
6
- implements IRepositoryBase<GroupPrivilegeModel> {
6
+ implements IRepositoryBase<GroupPrivilegeModel>
7
+ {
7
8
  constructor() {
8
9
  super(GroupPrivilegeModel);
9
10
  }
@@ -227,7 +227,8 @@ export class SystemPrivilege extends ObjectBase {
227
227
  ) {
228
228
  try {
229
229
  // Part 1: Privilege Checking
230
- const systemCode = ApplicationConfig.getComponentConfigValue('system-code');
230
+ const systemCode =
231
+ ApplicationConfig.getComponentConfigValue('system-code');
231
232
  const isPrivileged = await loginUser.checkPrivileges(
232
233
  systemCode,
233
234
  'PRIVILEGE_LIST',
@@ -242,7 +243,7 @@ export class SystemPrivilege extends ObjectBase {
242
243
  }
243
244
 
244
245
  // Part 2: Retrieve listing
245
- let options: any = {
246
+ const options: any = {
246
247
  order: [['createdAt', 'DESC']],
247
248
  transaction: dbTransaction,
248
249
  };
@@ -255,7 +256,7 @@ export class SystemPrivilege extends ObjectBase {
255
256
  options.limit = limit;
256
257
  }
257
258
 
258
- //If search query exists, please set it to sequelize where option.
259
+ //If search query exists, please set it to sequelize where option.
259
260
  if (search) {
260
261
  const queryObj: any = {};
261
262
  Object.entries(search).forEach(([key, value]) => {
@@ -267,7 +268,9 @@ export class SystemPrivilege extends ObjectBase {
267
268
  options.where = queryObj;
268
269
  }
269
270
 
270
- const result = await SystemPrivilege._Repository.findAllWithPagination(options);
271
+ const result = await SystemPrivilege._Repository.findAllWithPagination(
272
+ options,
273
+ );
271
274
 
272
275
  // Part 3: Return result
273
276
  // Map the result to SystemPrivilege object
@@ -76,5 +76,4 @@ export class UserObjectPrivilege extends ObjectBase {
76
76
  throw error;
77
77
  }
78
78
  }
79
-
80
79
  }
@@ -1,14 +1,14 @@
1
- import { ObjectStatus } from '../enum/object-status.enum';
2
-
3
- export interface IGroupObjectPrivilegeAttr {
4
- GroupObjectPrivilegeId?: number;
5
- GroupCode: string;
6
- PrivilegeCode: string;
7
- ObjectId: string;
8
- ObjectType: string;
9
- Status: ObjectStatus;
10
- CreatedById: number;
11
- UpdatedById: number;
12
- CreatedAt: Date;
13
- UpdatedAt: Date;
14
- }
1
+ import { ObjectStatus } from '../enum/object-status.enum';
2
+
3
+ export interface IGroupObjectPrivilegeAttr {
4
+ GroupObjectPrivilegeId?: number;
5
+ GroupCode: string;
6
+ PrivilegeCode: string;
7
+ ObjectId: string;
8
+ ObjectType: string;
9
+ Status: ObjectStatus;
10
+ CreatedById: number;
11
+ UpdatedById: number;
12
+ CreatedAt: Date;
13
+ UpdatedAt: Date;
14
+ }
@@ -2,6 +2,7 @@ import { GroupTypeEnum } from '../enum/group-type.enum';
2
2
 
3
3
  export interface IGroupSearchAttr {
4
4
  GroupCode?: string;
5
+ ParentGroupCode?: string;
5
6
  Name?: string;
6
7
  Type?: GroupTypeEnum;
7
8
  Status?: string;
@@ -1,5 +1,5 @@
1
- export interface ISystemPrivilegeSearch {
2
- PrivilegeCode?: string;
3
- SystemCode?: string;
4
- Status?: string;
5
- }
1
+ export interface ISystemPrivilegeSearch {
2
+ PrivilegeCode?: string;
3
+ SystemCode?: string;
4
+ Status?: string;
5
+ }
@@ -1,81 +1,81 @@
1
- import {
2
- BelongsTo,
3
- Column,
4
- CreatedAt,
5
- DataType,
6
- ForeignKey,
7
- Model,
8
- Table,
9
- UpdatedAt,
10
- } from 'sequelize-typescript';
11
- import User from './user.entity';
12
- import GroupModel from './group.entity';
13
- import SystemModel from './system.entity';
14
-
15
- @Table({
16
- tableName: 'sso_GroupSystemAccess',
17
- timestamps: true,
18
- createdAt: 'CreatedAt',
19
- updatedAt: 'UpdatedAt',
20
- })
21
- export default class GroupSystemAccessModel extends Model {
22
- @Column({
23
- autoIncrement: true,
24
- primaryKey: true,
25
- allowNull: false,
26
- type: DataType.INTEGER,
27
- })
28
- GroupSystemAccessId: number;
29
-
30
- @ForeignKey(() => GroupModel)
31
- @Column({
32
- allowNull: false,
33
- type: DataType.STRING(10),
34
- })
35
- GroupCode: string;
36
-
37
- @ForeignKey(() => SystemModel)
38
- @Column({
39
- allowNull: false,
40
- type: DataType.STRING(10),
41
- })
42
- SystemCode: string;
43
-
44
- @Column({
45
- allowNull: false,
46
- type: DataType.CHAR(10),
47
- })
48
- Status: string;
49
-
50
- @ForeignKey(() => User)
51
- @Column({
52
- allowNull: false,
53
- type: DataType.INTEGER,
54
- })
55
- CreatedById: number;
56
-
57
- @ForeignKey(() => User)
58
- @Column({
59
- allowNull: false,
60
- type: DataType.INTEGER,
61
- })
62
- UpdatedById: number;
63
-
64
- @CreatedAt
65
- CreatedAt: Date;
66
-
67
- @UpdatedAt
68
- UpdatedAt: Date;
69
-
70
- @BelongsTo(() => User, 'CreatedById')
71
- CreatedByUser: User;
72
-
73
- @BelongsTo(() => User, 'UpdatedById')
74
- UpdatedByUser: User;
75
-
76
- @BelongsTo(() => SystemModel, 'SystemCode')
77
- System: SystemModel;
78
-
79
- @BelongsTo(() => GroupModel, 'GroupCode')
80
- Group: GroupModel;
81
- }
1
+ import {
2
+ BelongsTo,
3
+ Column,
4
+ CreatedAt,
5
+ DataType,
6
+ ForeignKey,
7
+ Model,
8
+ Table,
9
+ UpdatedAt,
10
+ } from 'sequelize-typescript';
11
+ import User from './user.entity';
12
+ import GroupModel from './group.entity';
13
+ import SystemModel from './system.entity';
14
+
15
+ @Table({
16
+ tableName: 'sso_GroupSystemAccess',
17
+ timestamps: true,
18
+ createdAt: 'CreatedAt',
19
+ updatedAt: 'UpdatedAt',
20
+ })
21
+ export default class GroupSystemAccessModel extends Model {
22
+ @Column({
23
+ autoIncrement: true,
24
+ primaryKey: true,
25
+ allowNull: false,
26
+ type: DataType.INTEGER,
27
+ })
28
+ GroupSystemAccessId: number;
29
+
30
+ @ForeignKey(() => GroupModel)
31
+ @Column({
32
+ allowNull: false,
33
+ type: DataType.STRING(10),
34
+ })
35
+ GroupCode: string;
36
+
37
+ @ForeignKey(() => SystemModel)
38
+ @Column({
39
+ allowNull: false,
40
+ type: DataType.STRING(10),
41
+ })
42
+ SystemCode: string;
43
+
44
+ @Column({
45
+ allowNull: false,
46
+ type: DataType.CHAR(10),
47
+ })
48
+ Status: string;
49
+
50
+ @ForeignKey(() => User)
51
+ @Column({
52
+ allowNull: false,
53
+ type: DataType.INTEGER,
54
+ })
55
+ CreatedById: number;
56
+
57
+ @ForeignKey(() => User)
58
+ @Column({
59
+ allowNull: false,
60
+ type: DataType.INTEGER,
61
+ })
62
+ UpdatedById: number;
63
+
64
+ @CreatedAt
65
+ CreatedAt: Date;
66
+
67
+ @UpdatedAt
68
+ UpdatedAt: Date;
69
+
70
+ @BelongsTo(() => User, 'CreatedById')
71
+ CreatedByUser: User;
72
+
73
+ @BelongsTo(() => User, 'UpdatedById')
74
+ UpdatedByUser: User;
75
+
76
+ @BelongsTo(() => SystemModel, 'SystemCode')
77
+ System: SystemModel;
78
+
79
+ @BelongsTo(() => GroupModel, 'GroupCode')
80
+ Group: GroupModel;
81
+ }
@@ -1,6 +1,6 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": ["**/*.ts"],
4
- "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
- }
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": ["**/*.ts"],
4
+ "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
+ }
6
6
 
package/tsconfig.json CHANGED
@@ -1,23 +1,23 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "declaration": true,
5
- "removeComments": true,
6
- "emitDecoratorMetadata": true,
7
- "experimentalDecorators": true,
8
- "allowSyntheticDefaultImports": true,
9
- "moduleResolution": "node",
10
- "target": "es6",
11
- "sourceMap": true,
12
- "outDir": "./dist",
13
- "baseUrl": "./src",
14
- "rootDir": "./",
15
- "incremental": true,
16
- "skipLibCheck": true,
17
- "noImplicitAny": false,
18
- "strictBindCallApply": false,
19
- "forceConsistentCasingInFileNames": false,
20
- "noFallthroughCasesInSwitch": false,
21
- "strictNullChecks": false,
22
- },
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "moduleResolution": "node",
10
+ "target": "es6",
11
+ "sourceMap": true,
12
+ "outDir": "./dist",
13
+ "baseUrl": "./src",
14
+ "rootDir": "./",
15
+ "incremental": true,
16
+ "skipLibCheck": true,
17
+ "noImplicitAny": false,
18
+ "strictBindCallApply": false,
19
+ "forceConsistentCasingInFileNames": false,
20
+ "noFallthroughCasesInSwitch": false,
21
+ "strictNullChecks": false,
22
+ },
23
23
  }
@@ -1,71 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const group_privilege_1 = require("../../../../src/components/group-privilege/group-privilege");
13
- const group_privilege_repository_1 = require("../../../../src/components/group-privilege/group-privilege.repository");
14
- const general_1 = require("@tomei/general");
15
- describe('GroupPrivilege', () => {
16
- afterEach(() => {
17
- jest.restoreAllMocks();
18
- });
19
- it('should initialize with GroupPrivilegeAttr', () => __awaiter(void 0, void 0, void 0, function* () {
20
- const mockGroupPrivilegeAttr = {
21
- GroupPrivilegeId: 1,
22
- GroupCode: 'group1',
23
- PrivilegeCode: 'privilege1',
24
- Status: 'active',
25
- CreatedAt: new Date(),
26
- UpdatedAt: new Date(),
27
- CreatedById: 1,
28
- UpdatedById: 1,
29
- };
30
- const findOneMock = jest
31
- .spyOn(group_privilege_repository_1.GroupPrivilegeRepository.prototype, 'findOne')
32
- .mockResolvedValueOnce({ get: jest.fn().mockReturnValue(mockGroupPrivilegeAttr) });
33
- const groupPrivilege = yield group_privilege_1.GroupPrivilege.init(null, 1);
34
- expect(findOneMock).toBeCalledWith({
35
- where: { GroupPrivilegeId: 1 },
36
- transaction: null,
37
- });
38
- expect(groupPrivilege).toBeInstanceOf(group_privilege_1.GroupPrivilege);
39
- expect(groupPrivilege.GroupPrivilegeId).toEqual(mockGroupPrivilegeAttr.GroupPrivilegeId);
40
- expect(groupPrivilege.GroupCode).toEqual(mockGroupPrivilegeAttr.GroupCode);
41
- expect(groupPrivilege.PrivilegeCode).toEqual(mockGroupPrivilegeAttr.PrivilegeCode);
42
- expect(groupPrivilege.Status).toEqual(mockGroupPrivilegeAttr.Status);
43
- expect(groupPrivilege.CreatedAt).toEqual(mockGroupPrivilegeAttr.CreatedAt);
44
- expect(groupPrivilege.UpdatedAt).toEqual(mockGroupPrivilegeAttr.UpdatedAt);
45
- expect(groupPrivilege.CreatedById).toEqual(mockGroupPrivilegeAttr.CreatedById);
46
- expect(groupPrivilege.UpdatedById).toEqual(mockGroupPrivilegeAttr.UpdatedById);
47
- }));
48
- it('should throw ClassError when GroupPrivilegeAttr is not found', () => __awaiter(void 0, void 0, void 0, function* () {
49
- const findOneMock = jest
50
- .spyOn(group_privilege_repository_1.GroupPrivilegeRepository.prototype, 'findOne')
51
- .mockResolvedValueOnce(null);
52
- yield expect(group_privilege_1.GroupPrivilege.init(null, 1)).rejects.toThrow(general_1.ClassError);
53
- expect(findOneMock).toBeCalledWith({
54
- where: { GroupPrivilegeId: 1 },
55
- transaction: null,
56
- });
57
- }));
58
- it('should initialize with default values', () => __awaiter(void 0, void 0, void 0, function* () {
59
- const groupPrivilege = yield group_privilege_1.GroupPrivilege.init();
60
- expect(groupPrivilege).toBeInstanceOf(group_privilege_1.GroupPrivilege);
61
- expect(groupPrivilege.GroupPrivilegeId).toBeUndefined();
62
- expect(groupPrivilege.GroupCode).toBeUndefined();
63
- expect(groupPrivilege.PrivilegeCode).toBeUndefined();
64
- expect(groupPrivilege.Status).toBeUndefined();
65
- expect(groupPrivilege.CreatedAt).toBeUndefined();
66
- expect(groupPrivilege.UpdatedAt).toBeUndefined();
67
- expect(groupPrivilege.CreatedById).toBeUndefined();
68
- expect(groupPrivilege.UpdatedById).toBeUndefined();
69
- }));
70
- });
71
- //# sourceMappingURL=group-privilege.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"group-privilege.test.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/group-privilege/group-privilege.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- describe('LoginUser', () => {
2
- it('should be true', () => {
3
- expect(true).toBe(true);
4
- });
5
- });
6
- //# sourceMappingURL=login-user.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login-user.spec.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/login-user/login-user.spec.ts"],"names":[],"mappings":"AAuuBA,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}