@tomei/sso 0.61.0 → 0.62.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.
Files changed (257) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.gitlab-ci.yml +16 -16
  3. package/.husky/commit-msg +15 -15
  4. package/.husky/pre-commit +7 -7
  5. package/.prettierrc +4 -4
  6. package/Jenkinsfile +57 -57
  7. package/README.md +23 -23
  8. package/__tests__/unit/components/group/group.spec.ts +79 -79
  9. package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
  10. package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
  11. package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +66 -66
  12. package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
  13. package/__tests__/unit/components/login-user/l.spec.ts +746 -746
  14. package/__tests__/unit/components/login-user/login.spec.ts +1164 -1164
  15. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
  16. package/__tests__/unit/components/system/system.spec.ts +254 -254
  17. package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
  18. package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
  19. package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
  20. package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
  21. package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
  22. package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
  23. package/__tests__/unit/session/session.service.spec.ts +47 -47
  24. package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
  25. package/coverage/clover.xml +1452 -1452
  26. package/coverage/coverage-final.json +47 -47
  27. package/coverage/lcov-report/base.css +224 -224
  28. package/coverage/lcov-report/block-navigation.js +87 -87
  29. package/coverage/lcov-report/components/group/group.repository.ts.html +117 -117
  30. package/coverage/lcov-report/components/group/group.ts.html +327 -327
  31. package/coverage/lcov-report/components/group/index.html +130 -130
  32. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +117 -117
  33. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +321 -321
  34. package/coverage/lcov-report/components/group-object-privilege/index.html +130 -130
  35. package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +117 -117
  36. package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +303 -303
  37. package/coverage/lcov-report/components/group-privilege/index.html +130 -130
  38. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.repository.ts.html +117 -117
  39. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.ts.html +327 -327
  40. package/coverage/lcov-report/components/group-reporting-user/index.html +130 -130
  41. package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +117 -117
  42. package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +309 -309
  43. package/coverage/lcov-report/components/group-system-access/index.html +130 -130
  44. package/coverage/lcov-report/components/login-history/index.html +115 -115
  45. package/coverage/lcov-report/components/login-history/login-history.repository.ts.html +117 -117
  46. package/coverage/lcov-report/components/login-user/index.html +130 -130
  47. package/coverage/lcov-report/components/login-user/login-user.ts.html +5007 -5007
  48. package/coverage/lcov-report/components/login-user/user.repository.ts.html +117 -117
  49. package/coverage/lcov-report/components/password-hash/index.html +115 -115
  50. package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +126 -126
  51. package/coverage/lcov-report/components/system/index.html +130 -130
  52. package/coverage/lcov-report/components/system/system.repository.ts.html +117 -117
  53. package/coverage/lcov-report/components/system/system.ts.html +909 -909
  54. package/coverage/lcov-report/components/system-privilege/index.html +130 -130
  55. package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +120 -120
  56. package/coverage/lcov-report/components/system-privilege/system-privilege.ts.html +390 -390
  57. package/coverage/lcov-report/components/user-group/index.html +130 -130
  58. package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +117 -117
  59. package/coverage/lcov-report/components/user-group/user-group.ts.html +354 -354
  60. package/coverage/lcov-report/components/user-object-privilege/index.html +130 -130
  61. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +117 -117
  62. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +312 -312
  63. package/coverage/lcov-report/components/user-privilege/index.html +130 -130
  64. package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +117 -117
  65. package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +306 -306
  66. package/coverage/lcov-report/components/user-system-access/index.html +130 -130
  67. package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +117 -117
  68. package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +312 -312
  69. package/coverage/lcov-report/enum/group-type.enum.ts.html +108 -108
  70. package/coverage/lcov-report/enum/index.html +160 -160
  71. package/coverage/lcov-report/enum/index.ts.html +93 -93
  72. package/coverage/lcov-report/enum/user-status.enum.ts.html +105 -105
  73. package/coverage/lcov-report/enum/yn.enum.ts.html +96 -96
  74. package/coverage/lcov-report/index.html +370 -370
  75. package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +333 -333
  76. package/coverage/lcov-report/models/group-privilege.entity.ts.html +315 -315
  77. package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +339 -339
  78. package/coverage/lcov-report/models/group-system-access.entity.ts.html +324 -324
  79. package/coverage/lcov-report/models/group.entity.ts.html +435 -435
  80. package/coverage/lcov-report/models/index.html +310 -310
  81. package/coverage/lcov-report/models/login-history.entity.ts.html +252 -252
  82. package/coverage/lcov-report/models/staff.entity.ts.html +411 -411
  83. package/coverage/lcov-report/models/system-privilege.entity.ts.html +354 -354
  84. package/coverage/lcov-report/models/system.entity.ts.html +423 -423
  85. package/coverage/lcov-report/models/user-group.entity.ts.html +354 -354
  86. package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +330 -330
  87. package/coverage/lcov-report/models/user-privilege.entity.ts.html +315 -315
  88. package/coverage/lcov-report/models/user-system-access.entity.ts.html +315 -315
  89. package/coverage/lcov-report/models/user.entity.ts.html +522 -522
  90. package/coverage/lcov-report/prettify.css +1 -1
  91. package/coverage/lcov-report/prettify.js +2 -2
  92. package/coverage/lcov-report/redis-client/index.html +115 -115
  93. package/coverage/lcov-report/redis-client/redis.service.ts.html +240 -240
  94. package/coverage/lcov-report/session/index.html +115 -115
  95. package/coverage/lcov-report/session/session.service.ts.html +246 -246
  96. package/coverage/lcov-report/sorter.js +196 -196
  97. package/coverage/lcov.info +2490 -2490
  98. package/coverage/test-report.xml +128 -128
  99. package/create-sso-user.sql +39 -39
  100. package/dist/src/components/login-history/login-history.d.ts +23 -0
  101. package/dist/src/components/login-history/login-history.js +88 -0
  102. package/dist/src/components/login-history/login-history.js.map +1 -0
  103. package/dist/src/components/login-user/user.js +4 -3
  104. package/dist/src/components/login-user/user.js.map +1 -1
  105. package/dist/src/interfaces/login-history-search-attr.interface.d.ts +8 -0
  106. package/dist/src/interfaces/login-history-search-attr.interface.js +3 -0
  107. package/dist/src/interfaces/login-history-search-attr.interface.js.map +1 -0
  108. package/dist/src/interfaces/login-history.interface.d.ts +11 -0
  109. package/dist/src/interfaces/login-history.interface.js +3 -0
  110. package/dist/src/interfaces/login-history.interface.js.map +1 -0
  111. package/dist/tsconfig.tsbuildinfo +1 -1
  112. package/eslint.config.mjs +58 -58
  113. package/jest.config.js +14 -14
  114. package/migrations/20240314080602-create-user-table.js +124 -124
  115. package/migrations/20240314080603-create-user-group-table.js +85 -85
  116. package/migrations/20240314080604-create-user-user-group-table.js +55 -55
  117. package/migrations/20240314080605-create-login-history-table.js +53 -53
  118. package/migrations/20240527064925-create-system-table.js +78 -78
  119. package/migrations/20240527064926-create-system-privilege-table.js +71 -71
  120. package/migrations/20240527065342-create-group-table.js +93 -93
  121. package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
  122. package/migrations/20240528011551-create-group-system-access-table.js +72 -72
  123. package/migrations/20240528023018-user-system-access-table.js +75 -75
  124. package/migrations/20240528032229-user-privilege-table.js +76 -76
  125. package/migrations/20240528063003-create-group-privilege-table.js +76 -76
  126. package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
  127. package/migrations/20240528063107-create-user-object-privilege-table.js +84 -84
  128. package/migrations/20240528063108-create-api-key-table.js +85 -85
  129. package/migrations/20241104104802-create-building-table.js +95 -95
  130. package/migrations/20250108091132-add-area-manager-user-id-to-building-table.js +14 -14
  131. package/migrations/20250108091133-add-passcode-to-user-table.js +36 -36
  132. package/migrations/20250210115636-create-user-reporting-hierarchy.js +76 -76
  133. package/migrations/20250326043818-crate-user-password-history.js +42 -42
  134. package/package.json +90 -90
  135. package/sampledotenv +7 -7
  136. package/sonar-project.properties +22 -22
  137. package/src/components/api-key/api-key.repository.ts +15 -15
  138. package/src/components/api-key/api-key.ts +448 -448
  139. package/src/components/api-key/index.ts +4 -4
  140. package/src/components/building/building.repository.ts +27 -27
  141. package/src/components/building/index.ts +2 -2
  142. package/src/components/group/group.repository.ts +26 -26
  143. package/src/components/group/group.ts +2284 -2284
  144. package/src/components/group/index.ts +3 -3
  145. package/src/components/group-object-privilege/group-object-privilege.repository.ts +25 -25
  146. package/src/components/group-object-privilege/group-object-privilege.ts +278 -278
  147. package/src/components/group-object-privilege/index.ts +2 -2
  148. package/src/components/group-privilege/group-privilege.repository.ts +29 -29
  149. package/src/components/group-privilege/group-privilege.ts +84 -84
  150. package/src/components/group-privilege/index.ts +2 -2
  151. package/src/components/group-reporting-user/group-reporting-user.repository.ts +23 -23
  152. package/src/components/group-reporting-user/group-reporting-user.ts +506 -506
  153. package/src/components/group-reporting-user/index.ts +3 -3
  154. package/src/components/group-system-access/group-system-access.repository.ts +43 -43
  155. package/src/components/group-system-access/group-system-access.ts +90 -90
  156. package/src/components/group-system-access/index.ts +2 -2
  157. package/src/components/index.ts +20 -20
  158. package/src/components/login-history/index.ts +1 -1
  159. package/src/components/login-history/login-history.repository.ts +11 -11
  160. package/src/components/login-user/index.ts +5 -5
  161. package/src/components/login-user/interfaces/check-user-info-duplicated.interface.ts +7 -7
  162. package/src/components/login-user/interfaces/index.ts +1 -1
  163. package/src/components/login-user/interfaces/system-access.interface.ts +13 -13
  164. package/src/components/login-user/interfaces/user-info.interface.ts +34 -34
  165. package/src/components/login-user/login-user.ts +362 -362
  166. package/src/components/login-user/user.repository.ts +11 -11
  167. package/src/components/login-user/user.ts +3143 -3142
  168. package/src/components/password-hash/index.ts +2 -2
  169. package/src/components/password-hash/interfaces/index.ts +1 -1
  170. package/src/components/password-hash/interfaces/password-hash-service.interface.ts +4 -4
  171. package/src/components/password-hash/password-hash.service.ts +14 -14
  172. package/src/components/staff/index.ts +2 -2
  173. package/src/components/staff/staff.repository.ts +27 -27
  174. package/src/components/system/index.ts +3 -3
  175. package/src/components/system/system.repository.ts +11 -11
  176. package/src/components/system/system.ts +456 -456
  177. package/src/components/system-privilege/index.ts +4 -4
  178. package/src/components/system-privilege/system-privilege.repository.ts +18 -18
  179. package/src/components/system-privilege/system-privilege.ts +541 -541
  180. package/src/components/user-group/index.ts +2 -2
  181. package/src/components/user-group/user-group.repository.ts +19 -19
  182. package/src/components/user-group/user-group.ts +764 -764
  183. package/src/components/user-object-privilege/index.ts +2 -2
  184. package/src/components/user-object-privilege/user-object-privilege.repository.ts +11 -11
  185. package/src/components/user-object-privilege/user-object-privilege.ts +79 -79
  186. package/src/components/user-password-history/index.ts +2 -2
  187. package/src/components/user-password-history/user-password-history.repository.ts +39 -39
  188. package/src/components/user-password-history/user-password-history.ts +187 -187
  189. package/src/components/user-privilege/index.ts +2 -2
  190. package/src/components/user-privilege/user-privilege.repository.ts +25 -25
  191. package/src/components/user-privilege/user-privilege.ts +662 -662
  192. package/src/components/user-reporting-hierarchy/index.ts +2 -2
  193. package/src/components/user-reporting-hierarchy/user-reporting-hierarchy.repository.ts +30 -30
  194. package/src/components/user-reporting-hierarchy/user-reporting-hierarchy.ts +505 -505
  195. package/src/components/user-system-access/index.ts +2 -2
  196. package/src/components/user-system-access/user-system-access.repository.ts +41 -41
  197. package/src/components/user-system-access/user-system-access.ts +717 -717
  198. package/src/database.ts +15 -15
  199. package/src/enum/api-key.enum.ts +5 -5
  200. package/src/enum/building-type.enum.ts +6 -6
  201. package/src/enum/group-type.enum.ts +8 -8
  202. package/src/enum/index.ts +6 -6
  203. package/src/enum/login-status.enum.ts +4 -4
  204. package/src/enum/object-status.enum.ts +4 -4
  205. package/src/enum/user-status.enum.ts +7 -7
  206. package/src/enum/yn.enum.ts +4 -4
  207. package/src/index.ts +8 -8
  208. package/src/interfaces/api-key-attr.interface.ts +16 -16
  209. package/src/interfaces/group-object-privilege.interface.ts +14 -14
  210. package/src/interfaces/group-privilege.interface.ts +10 -10
  211. package/src/interfaces/group-reporting-user.interface.ts +11 -11
  212. package/src/interfaces/group-search-attr.interface.ts +9 -9
  213. package/src/interfaces/group-system-access.interface.ts +10 -10
  214. package/src/interfaces/group.interface.ts +17 -17
  215. package/src/interfaces/index.ts +13 -13
  216. package/src/interfaces/system-login.interface.ts +6 -6
  217. package/src/interfaces/system-privilege-search.interface.ts +5 -5
  218. package/src/interfaces/system-privilege.interface.ts +11 -11
  219. package/src/interfaces/system-search-attr.interface.ts +5 -5
  220. package/src/interfaces/system.interface.ts +15 -15
  221. package/src/interfaces/user-group.interface.ts +12 -12
  222. package/src/interfaces/user-object-privilege.interface.ts +14 -14
  223. package/src/interfaces/user-password-history.interface.ts +6 -6
  224. package/src/interfaces/user-privilege.interface.ts +10 -10
  225. package/src/interfaces/user-reporting-hierarchy.interface.ts +11 -11
  226. package/src/interfaces/user-session.interface.ts +5 -5
  227. package/src/interfaces/user-system-access.interface.ts +10 -10
  228. package/src/models/api-key-entity.ts +101 -101
  229. package/src/models/building.entity.ts +103 -103
  230. package/src/models/group-object-privilege.entity.ts +91 -91
  231. package/src/models/group-privilege.entity.ts +78 -78
  232. package/src/models/group-reporting-user.entity.ts +95 -95
  233. package/src/models/group-system-access.entity.ts +81 -81
  234. package/src/models/group.entity.ts +127 -127
  235. package/src/models/login-history.entity.ts +63 -63
  236. package/src/models/staff.entity.ts +91 -91
  237. package/src/models/system-privilege.entity.ts +90 -90
  238. package/src/models/system.entity.ts +113 -113
  239. package/src/models/user-group.entity.ts +91 -91
  240. package/src/models/user-object-privilege.entity.ts +90 -90
  241. package/src/models/user-password-history.ts +51 -51
  242. package/src/models/user-privilege.entity.ts +78 -78
  243. package/src/models/user-reporting-hierarchy.entity.ts +102 -102
  244. package/src/models/user-system-access.entity.ts +87 -87
  245. package/src/models/user.entity.ts +193 -193
  246. package/src/redis-client/__mocks__/jest-initial-setup.ts +2 -2
  247. package/src/redis-client/__mocks__/redis-mock.ts +28 -28
  248. package/src/redis-client/index.ts +1 -1
  249. package/src/redis-client/redis.service.ts +75 -75
  250. package/src/session/index.ts +2 -2
  251. package/src/session/interfaces/index.ts +1 -1
  252. package/src/session/interfaces/session-service.interface.ts +26 -26
  253. package/src/session/session.service.ts +96 -96
  254. package/src/types/auth-context.ts +10 -10
  255. package/src/types/index.ts +1 -1
  256. package/tsconfig.build.json +5 -5
  257. package/tsconfig.json +23 -23
@@ -1,87 +1,87 @@
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 SystemModel from './system.entity';
13
-
14
- @Table({
15
- tableName: 'sso_UserSystemAccess',
16
- timestamps: true,
17
- createdAt: 'CreatedAt',
18
- updatedAt: 'UpdatedAt',
19
- })
20
- export default class UserSystemAccessModel extends Model {
21
- @Column({
22
- primaryKey: true,
23
- type: DataType.INTEGER,
24
- allowNull: false,
25
- autoIncrement: true,
26
- })
27
- UserSystemAccessId: number;
28
-
29
- @ForeignKey(() => User)
30
- @Column({
31
- type: DataType.INTEGER,
32
- field: 'UserId',
33
- })
34
- UserId: number;
35
-
36
- @ForeignKey(() => SystemModel)
37
- @Column({
38
- type: DataType.STRING(10),
39
- allowNull: false,
40
- })
41
- SystemCode: string;
42
-
43
- @Column({
44
- type: DataType.CHAR(20),
45
- defaultValue: 'Active',
46
- })
47
- Status: string;
48
-
49
- @ForeignKey(() => User)
50
- @Column({
51
- type: DataType.INTEGER,
52
- })
53
- CreatedById: number;
54
-
55
- @ForeignKey(() => User)
56
- @Column({
57
- type: DataType.INTEGER,
58
- })
59
- UpdatedById: number;
60
-
61
- @CreatedAt
62
- CreatedAt: Date;
63
-
64
- @UpdatedAt
65
- UpdatedAt: Date;
66
-
67
- @BelongsTo(() => User, {
68
- foreignKey: 'UserId',
69
- as: 'User',
70
- })
71
- User: User;
72
-
73
- @BelongsTo(() => SystemModel)
74
- System: SystemModel;
75
-
76
- @BelongsTo(() => User, {
77
- foreignKey: 'CreatedById',
78
- as: 'CreatedBy',
79
- })
80
- CreatedBy: User;
81
-
82
- @BelongsTo(() => User, {
83
- foreignKey: 'UpdatedById',
84
- as: 'UpdatedBy',
85
- })
86
- UpdatedBy: User;
87
- }
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 SystemModel from './system.entity';
13
+
14
+ @Table({
15
+ tableName: 'sso_UserSystemAccess',
16
+ timestamps: true,
17
+ createdAt: 'CreatedAt',
18
+ updatedAt: 'UpdatedAt',
19
+ })
20
+ export default class UserSystemAccessModel extends Model {
21
+ @Column({
22
+ primaryKey: true,
23
+ type: DataType.INTEGER,
24
+ allowNull: false,
25
+ autoIncrement: true,
26
+ })
27
+ UserSystemAccessId: number;
28
+
29
+ @ForeignKey(() => User)
30
+ @Column({
31
+ type: DataType.INTEGER,
32
+ field: 'UserId',
33
+ })
34
+ UserId: number;
35
+
36
+ @ForeignKey(() => SystemModel)
37
+ @Column({
38
+ type: DataType.STRING(10),
39
+ allowNull: false,
40
+ })
41
+ SystemCode: string;
42
+
43
+ @Column({
44
+ type: DataType.CHAR(20),
45
+ defaultValue: 'Active',
46
+ })
47
+ Status: string;
48
+
49
+ @ForeignKey(() => User)
50
+ @Column({
51
+ type: DataType.INTEGER,
52
+ })
53
+ CreatedById: number;
54
+
55
+ @ForeignKey(() => User)
56
+ @Column({
57
+ type: DataType.INTEGER,
58
+ })
59
+ UpdatedById: number;
60
+
61
+ @CreatedAt
62
+ CreatedAt: Date;
63
+
64
+ @UpdatedAt
65
+ UpdatedAt: Date;
66
+
67
+ @BelongsTo(() => User, {
68
+ foreignKey: 'UserId',
69
+ as: 'User',
70
+ })
71
+ User: User;
72
+
73
+ @BelongsTo(() => SystemModel)
74
+ System: SystemModel;
75
+
76
+ @BelongsTo(() => User, {
77
+ foreignKey: 'CreatedById',
78
+ as: 'CreatedBy',
79
+ })
80
+ CreatedBy: User;
81
+
82
+ @BelongsTo(() => User, {
83
+ foreignKey: 'UpdatedById',
84
+ as: 'UpdatedBy',
85
+ })
86
+ UpdatedBy: User;
87
+ }
@@ -1,193 +1,193 @@
1
- import {
2
- BelongsTo,
3
- BelongsToMany,
4
- Column,
5
- CreatedAt,
6
- DataType,
7
- ForeignKey,
8
- HasMany,
9
- HasOne,
10
- Model,
11
- Table,
12
- UpdatedAt,
13
- } from 'sequelize-typescript';
14
- import Staff from './staff.entity';
15
- import { YN } from '../enum/yn.enum';
16
- import { UserStatus } from '../enum/user-status.enum';
17
- import UserSystemAccessModel from './user-system-access.entity';
18
- import UserPrivilegeModel from './user-privilege.entity';
19
- import UserGroupModel from './user-group.entity';
20
- import UserObjectPrivilegeModel from './user-object-privilege.entity';
21
-
22
- @Table({
23
- tableName: 'sso_User',
24
- timestamps: true,
25
- createdAt: 'CreatedAt',
26
- updatedAt: 'UpdatedAt',
27
- })
28
- export default class User extends Model {
29
- @Column({
30
- primaryKey: true,
31
- allowNull: false,
32
- autoIncrement: true,
33
- type: DataType.INTEGER,
34
- })
35
- UserId: number;
36
-
37
- @Column({
38
- allowNull: true,
39
- type: DataType.STRING,
40
- })
41
- UserName: string;
42
-
43
- @Column({
44
- allowNull: false,
45
- type: DataType.STRING,
46
- })
47
- Email: string;
48
-
49
- @Column({
50
- allowNull: false,
51
- type: DataType.STRING,
52
- })
53
- Password: string;
54
-
55
- @Column({
56
- allowNull: true,
57
- type: DataType.STRING,
58
- })
59
- FullName: string;
60
-
61
- @Column({
62
- allowNull: true,
63
- type: DataType.STRING,
64
- })
65
- IdNo: string;
66
-
67
- @Column({
68
- allowNull: true,
69
- type: DataType.STRING,
70
- })
71
- IdType: string;
72
-
73
- @Column({
74
- allowNull: true,
75
- type: DataType.STRING,
76
- })
77
- ContactNo: string;
78
-
79
- @Column({
80
- allowNull: false,
81
- type: DataType.STRING,
82
- })
83
- Status: UserStatus;
84
-
85
- @Column({
86
- allowNull: false,
87
- type: DataType.CHAR(1),
88
- })
89
- DefaultPasswordChangedYN: YN;
90
-
91
- @Column({
92
- type: DataType.DATE,
93
- })
94
- FirstLoginAt: Date;
95
-
96
- @Column({
97
- type: DataType.DATE,
98
- })
99
- LastLoginAt: Date;
100
-
101
- @Column({
102
- type: DataType.TINYINT,
103
- })
104
- MFAEnabled: number;
105
-
106
- @Column({
107
- type: DataType.TEXT,
108
- })
109
- MFAConfig: string;
110
-
111
- @Column({
112
- type: DataType.STRING,
113
- })
114
- RecoveryEmail: string;
115
-
116
- @Column({
117
- allowNull: false,
118
- type: DataType.INTEGER,
119
- })
120
- FailedLoginAttemptCount: number;
121
-
122
- @Column({
123
- type: DataType.DATE,
124
- })
125
- LastFailedLoginAt: Date;
126
-
127
- @Column({
128
- type: DataType.DATE,
129
- })
130
- LastPasswordChangedAt: Date;
131
-
132
- @Column({
133
- allowNull: false,
134
- type: DataType.CHAR(1),
135
- })
136
- NeedToChangePasswordYN: YN;
137
-
138
- @Column({
139
- allowNull: true,
140
- type: DataType.STRING,
141
- })
142
- PasscodeHash: string;
143
-
144
- @Column({
145
- type: DataType.DATE,
146
- })
147
- PasscodeUpdatedAt: Date;
148
-
149
- @ForeignKey(() => User)
150
- @Column({
151
- type: DataType.INTEGER,
152
- })
153
- CreatedById: number;
154
-
155
- @CreatedAt
156
- CreatedAt: Date;
157
-
158
- @ForeignKey(() => User)
159
- @Column({
160
- type: DataType.INTEGER,
161
- })
162
- UpdatedById: number;
163
-
164
- @UpdatedAt
165
- UpdatedAt: Date;
166
-
167
- @HasOne(() => Staff, 'UserId')
168
- Staff: Staff;
169
-
170
- @HasMany(() => UserGroupModel, 'UserId')
171
- UserGroups: UserGroupModel[];
172
-
173
- @HasMany(() => UserSystemAccessModel)
174
- UserSystemAccesses: UserSystemAccessModel[];
175
-
176
- @HasMany(() => UserPrivilegeModel)
177
- UserPrivileges: UserPrivilegeModel[];
178
-
179
- @HasMany(() => UserObjectPrivilegeModel)
180
- UserObjectPrivileges: UserObjectPrivilegeModel[];
181
-
182
- @BelongsTo(() => User, {
183
- as: 'CreatedBy',
184
- foreignKey: 'CreatedById',
185
- })
186
- CreatedBy: User;
187
-
188
- @BelongsTo(() => User, {
189
- as: 'UpdatedBy',
190
- foreignKey: 'UpdatedById',
191
- })
192
- UpdatedBy: User;
193
- }
1
+ import {
2
+ BelongsTo,
3
+ BelongsToMany,
4
+ Column,
5
+ CreatedAt,
6
+ DataType,
7
+ ForeignKey,
8
+ HasMany,
9
+ HasOne,
10
+ Model,
11
+ Table,
12
+ UpdatedAt,
13
+ } from 'sequelize-typescript';
14
+ import Staff from './staff.entity';
15
+ import { YN } from '../enum/yn.enum';
16
+ import { UserStatus } from '../enum/user-status.enum';
17
+ import UserSystemAccessModel from './user-system-access.entity';
18
+ import UserPrivilegeModel from './user-privilege.entity';
19
+ import UserGroupModel from './user-group.entity';
20
+ import UserObjectPrivilegeModel from './user-object-privilege.entity';
21
+
22
+ @Table({
23
+ tableName: 'sso_User',
24
+ timestamps: true,
25
+ createdAt: 'CreatedAt',
26
+ updatedAt: 'UpdatedAt',
27
+ })
28
+ export default class User extends Model {
29
+ @Column({
30
+ primaryKey: true,
31
+ allowNull: false,
32
+ autoIncrement: true,
33
+ type: DataType.INTEGER,
34
+ })
35
+ UserId: number;
36
+
37
+ @Column({
38
+ allowNull: true,
39
+ type: DataType.STRING,
40
+ })
41
+ UserName: string;
42
+
43
+ @Column({
44
+ allowNull: false,
45
+ type: DataType.STRING,
46
+ })
47
+ Email: string;
48
+
49
+ @Column({
50
+ allowNull: false,
51
+ type: DataType.STRING,
52
+ })
53
+ Password: string;
54
+
55
+ @Column({
56
+ allowNull: true,
57
+ type: DataType.STRING,
58
+ })
59
+ FullName: string;
60
+
61
+ @Column({
62
+ allowNull: true,
63
+ type: DataType.STRING,
64
+ })
65
+ IdNo: string;
66
+
67
+ @Column({
68
+ allowNull: true,
69
+ type: DataType.STRING,
70
+ })
71
+ IdType: string;
72
+
73
+ @Column({
74
+ allowNull: true,
75
+ type: DataType.STRING,
76
+ })
77
+ ContactNo: string;
78
+
79
+ @Column({
80
+ allowNull: false,
81
+ type: DataType.STRING,
82
+ })
83
+ Status: UserStatus;
84
+
85
+ @Column({
86
+ allowNull: false,
87
+ type: DataType.CHAR(1),
88
+ })
89
+ DefaultPasswordChangedYN: YN;
90
+
91
+ @Column({
92
+ type: DataType.DATE,
93
+ })
94
+ FirstLoginAt: Date;
95
+
96
+ @Column({
97
+ type: DataType.DATE,
98
+ })
99
+ LastLoginAt: Date;
100
+
101
+ @Column({
102
+ type: DataType.TINYINT,
103
+ })
104
+ MFAEnabled: number;
105
+
106
+ @Column({
107
+ type: DataType.TEXT,
108
+ })
109
+ MFAConfig: string;
110
+
111
+ @Column({
112
+ type: DataType.STRING,
113
+ })
114
+ RecoveryEmail: string;
115
+
116
+ @Column({
117
+ allowNull: false,
118
+ type: DataType.INTEGER,
119
+ })
120
+ FailedLoginAttemptCount: number;
121
+
122
+ @Column({
123
+ type: DataType.DATE,
124
+ })
125
+ LastFailedLoginAt: Date;
126
+
127
+ @Column({
128
+ type: DataType.DATE,
129
+ })
130
+ LastPasswordChangedAt: Date;
131
+
132
+ @Column({
133
+ allowNull: false,
134
+ type: DataType.CHAR(1),
135
+ })
136
+ NeedToChangePasswordYN: YN;
137
+
138
+ @Column({
139
+ allowNull: true,
140
+ type: DataType.STRING,
141
+ })
142
+ PasscodeHash: string;
143
+
144
+ @Column({
145
+ type: DataType.DATE,
146
+ })
147
+ PasscodeUpdatedAt: Date;
148
+
149
+ @ForeignKey(() => User)
150
+ @Column({
151
+ type: DataType.INTEGER,
152
+ })
153
+ CreatedById: number;
154
+
155
+ @CreatedAt
156
+ CreatedAt: Date;
157
+
158
+ @ForeignKey(() => User)
159
+ @Column({
160
+ type: DataType.INTEGER,
161
+ })
162
+ UpdatedById: number;
163
+
164
+ @UpdatedAt
165
+ UpdatedAt: Date;
166
+
167
+ @HasOne(() => Staff, 'UserId')
168
+ Staff: Staff;
169
+
170
+ @HasMany(() => UserGroupModel, 'UserId')
171
+ UserGroups: UserGroupModel[];
172
+
173
+ @HasMany(() => UserSystemAccessModel)
174
+ UserSystemAccesses: UserSystemAccessModel[];
175
+
176
+ @HasMany(() => UserPrivilegeModel)
177
+ UserPrivileges: UserPrivilegeModel[];
178
+
179
+ @HasMany(() => UserObjectPrivilegeModel)
180
+ UserObjectPrivileges: UserObjectPrivilegeModel[];
181
+
182
+ @BelongsTo(() => User, {
183
+ as: 'CreatedBy',
184
+ foreignKey: 'CreatedById',
185
+ })
186
+ CreatedBy: User;
187
+
188
+ @BelongsTo(() => User, {
189
+ as: 'UpdatedBy',
190
+ foreignKey: 'UpdatedById',
191
+ })
192
+ UpdatedBy: User;
193
+ }
@@ -1,2 +1,2 @@
1
- import redis from './redis-mock';
2
- jest.mock('redis', () => redis);
1
+ import redis from './redis-mock';
2
+ jest.mock('redis', () => redis);
@@ -1,28 +1,28 @@
1
- /* eslint-disable @typescript-eslint/explicit-function-return-type */
2
- // redis-mock has not been updated for node-redis v4 yet, but the main changes
3
- // in the API are camelCase names and promises instead of callback, so we can work around it.
4
- // https://github.com/yeahoffline/redis-mock/issues/195
5
- import redis, { createClient } from 'redis-mock';
6
- // @ts-expect-error Work-around redis-mock types reporting incorrectly as v4 redis.
7
- import { RedisClient } from '@types/redis';
8
- import { promisify } from 'util';
9
- const client = createClient() as unknown as RedisClient;
10
- const setEx = promisify(client.setex).bind(client);
11
- const v4Client = {
12
- connect: () => undefined,
13
- get: promisify(client.get).bind(client),
14
- set: promisify(client.set).bind(client),
15
- del: promisify(client.del).bind(client),
16
- hSet: promisify(client.hset).bind(client),
17
- hGet: promisify(client.hget).bind(client),
18
- hDel: promisify(client.hdel).bind(client),
19
- flushAll: promisify(client.flushall).bind(client),
20
- setEx: promisify(client.setex).bind(client),
21
- expire: promisify(client.expire).bind(client),
22
- mGet: promisify(client.mget).bind(client),
23
- pSetEx: (key: string, ms: number, value: string) =>
24
- setEx(key, ms / 1000, value),
25
- on: () => undefined,
26
- // Add additional functions as needed...
27
- };
28
- export default { ...redis, createClient: () => v4Client };
1
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
2
+ // redis-mock has not been updated for node-redis v4 yet, but the main changes
3
+ // in the API are camelCase names and promises instead of callback, so we can work around it.
4
+ // https://github.com/yeahoffline/redis-mock/issues/195
5
+ import redis, { createClient } from 'redis-mock';
6
+ // @ts-expect-error Work-around redis-mock types reporting incorrectly as v4 redis.
7
+ import { RedisClient } from '@types/redis';
8
+ import { promisify } from 'util';
9
+ const client = createClient() as unknown as RedisClient;
10
+ const setEx = promisify(client.setex).bind(client);
11
+ const v4Client = {
12
+ connect: () => undefined,
13
+ get: promisify(client.get).bind(client),
14
+ set: promisify(client.set).bind(client),
15
+ del: promisify(client.del).bind(client),
16
+ hSet: promisify(client.hset).bind(client),
17
+ hGet: promisify(client.hget).bind(client),
18
+ hDel: promisify(client.hdel).bind(client),
19
+ flushAll: promisify(client.flushall).bind(client),
20
+ setEx: promisify(client.setex).bind(client),
21
+ expire: promisify(client.expire).bind(client),
22
+ mGet: promisify(client.mget).bind(client),
23
+ pSetEx: (key: string, ms: number, value: string) =>
24
+ setEx(key, ms / 1000, value),
25
+ on: () => undefined,
26
+ // Add additional functions as needed...
27
+ };
28
+ export default { ...redis, createClient: () => v4Client };
@@ -1 +1 @@
1
- export * from './redis.service';
1
+ export * from './redis.service';