@tomei/sso 0.15.5 → 0.15.6

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 (247) hide show
  1. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +1 -0
  2. package/dist/__tests__/unit/components/login-user/login-user.spec.js +663 -0
  3. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -0
  4. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.d.ts +1 -0
  5. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.js +38 -0
  6. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.js.map +1 -0
  7. package/dist/__tests__/unit/redis-client/redis.service.spec.d.ts +1 -0
  8. package/dist/__tests__/unit/redis-client/redis.service.spec.js +32 -0
  9. package/dist/__tests__/unit/redis-client/redis.service.spec.js.map +1 -0
  10. package/dist/__tests__/unit/session/session.service.spec.d.ts +1 -0
  11. package/dist/__tests__/unit/session/session.service.spec.js +55 -0
  12. package/dist/__tests__/unit/session/session.service.spec.js.map +1 -0
  13. package/dist/__tests__/unit/system-privilege/system-privilage.spec.d.ts +0 -0
  14. package/dist/__tests__/unit/system-privilege/system-privilage.spec.js +6 -0
  15. package/dist/__tests__/unit/system-privilege/system-privilage.spec.js.map +1 -0
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.js +18 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/src/components/building/building.d.ts +39 -0
  20. package/dist/src/components/building/building.js +129 -0
  21. package/dist/src/components/building/building.js.map +1 -0
  22. package/dist/src/components/building/building.repository.d.ts +6 -0
  23. package/dist/src/components/building/building.repository.js +38 -0
  24. package/dist/src/components/building/building.repository.js.map +1 -0
  25. package/dist/src/components/building/index.d.ts +2 -0
  26. package/dist/src/components/building/index.js +19 -0
  27. package/dist/src/components/building/index.js.map +1 -0
  28. package/dist/src/components/building-type/building-type.repository.d.ts +5 -0
  29. package/dist/src/components/building-type/building-type.repository.js +12 -0
  30. package/dist/src/components/building-type/building-type.repository.js.map +1 -0
  31. package/dist/src/components/building-type/index.d.ts +1 -0
  32. package/dist/src/components/building-type/index.js +18 -0
  33. package/dist/src/components/building-type/index.js.map +1 -0
  34. package/dist/src/components/index.d.ts +10 -0
  35. package/dist/src/components/index.js +27 -0
  36. package/dist/src/components/index.js.map +1 -0
  37. package/dist/src/components/login-history/index.d.ts +1 -0
  38. package/dist/src/components/login-history/index.js +18 -0
  39. package/dist/src/components/login-history/index.js.map +1 -0
  40. package/dist/src/components/login-history/login-history.repository.d.ts +5 -0
  41. package/dist/src/components/login-history/login-history.repository.js +12 -0
  42. package/dist/src/components/login-history/login-history.repository.js.map +1 -0
  43. package/dist/src/components/login-user/index.d.ts +3 -0
  44. package/dist/src/components/login-user/index.js +20 -0
  45. package/dist/src/components/login-user/index.js.map +1 -0
  46. package/dist/src/components/login-user/interfaces/index.d.ts +1 -0
  47. package/dist/src/components/login-user/interfaces/index.js +18 -0
  48. package/dist/src/components/login-user/interfaces/index.js.map +1 -0
  49. package/dist/src/components/login-user/interfaces/user-info.interface.d.ts +27 -0
  50. package/dist/src/components/login-user/interfaces/user-info.interface.js +3 -0
  51. package/dist/src/components/login-user/interfaces/user-info.interface.js.map +1 -0
  52. package/dist/src/components/login-user/login-user.d.ts +92 -0
  53. package/dist/src/components/login-user/login-user.js +588 -0
  54. package/dist/src/components/login-user/login-user.js.map +1 -0
  55. package/dist/src/components/login-user/user.repository.d.ts +5 -0
  56. package/dist/src/components/login-user/user.repository.js +12 -0
  57. package/dist/src/components/login-user/user.repository.js.map +1 -0
  58. package/dist/src/components/password-hash/index.d.ts +2 -0
  59. package/dist/src/components/password-hash/index.js +19 -0
  60. package/dist/src/components/password-hash/index.js.map +1 -0
  61. package/dist/src/components/password-hash/interfaces/index.d.ts +1 -0
  62. package/dist/src/components/password-hash/interfaces/index.js +18 -0
  63. package/dist/src/components/password-hash/interfaces/index.js.map +1 -0
  64. package/dist/src/components/password-hash/interfaces/password-hash-service.interface.d.ts +4 -0
  65. package/dist/src/components/password-hash/interfaces/password-hash-service.interface.js +3 -0
  66. package/dist/src/components/password-hash/interfaces/password-hash-service.interface.js.map +1 -0
  67. package/dist/src/components/password-hash/password-hash.service.d.ts +6 -0
  68. package/dist/src/components/password-hash/password-hash.service.js +28 -0
  69. package/dist/src/components/password-hash/password-hash.service.js.map +1 -0
  70. package/dist/src/components/staff/index.d.ts +2 -0
  71. package/dist/src/components/staff/index.js +19 -0
  72. package/dist/src/components/staff/index.js.map +1 -0
  73. package/dist/src/components/staff/staff.d.ts +50 -0
  74. package/dist/src/components/staff/staff.js +102 -0
  75. package/dist/src/components/staff/staff.js.map +1 -0
  76. package/dist/src/components/staff/staff.repository.d.ts +6 -0
  77. package/dist/src/components/staff/staff.repository.js +38 -0
  78. package/dist/src/components/staff/staff.repository.js.map +1 -0
  79. package/dist/src/components/system/index.d.ts +1 -0
  80. package/dist/src/components/system/index.js +18 -0
  81. package/dist/src/components/system/index.js.map +1 -0
  82. package/dist/src/components/system/system.repository.d.ts +5 -0
  83. package/dist/src/components/system/system.repository.js +12 -0
  84. package/dist/src/components/system/system.repository.js.map +1 -0
  85. package/dist/src/components/system-access/index.d.ts +1 -0
  86. package/dist/src/components/system-access/index.js +18 -0
  87. package/dist/src/components/system-access/index.js.map +1 -0
  88. package/dist/src/components/system-access/system-access.repository.d.ts +5 -0
  89. package/dist/src/components/system-access/system-access.repository.js +12 -0
  90. package/dist/src/components/system-access/system-access.repository.js.map +1 -0
  91. package/dist/src/components/system-privilege/privilege.d.ts +6 -0
  92. package/dist/src/components/system-privilege/privilege.js +77 -0
  93. package/dist/src/components/system-privilege/privilege.js.map +1 -0
  94. package/dist/src/components/system-privilege/system-privilege.repository.d.ts +6 -0
  95. package/dist/src/components/system-privilege/system-privilege.repository.js +35 -0
  96. package/dist/src/components/system-privilege/system-privilege.repository.js.map +1 -0
  97. package/dist/src/components/user-group/index.d.ts +1 -0
  98. package/dist/src/components/user-group/index.js +18 -0
  99. package/dist/src/components/user-group/index.js.map +1 -0
  100. package/dist/src/components/user-group/user-group.repository.d.ts +5 -0
  101. package/dist/src/components/user-group/user-group.repository.js +12 -0
  102. package/dist/src/components/user-group/user-group.repository.js.map +1 -0
  103. package/dist/src/components/user-user-group/index.d.ts +1 -0
  104. package/dist/src/components/user-user-group/index.js +18 -0
  105. package/dist/src/components/user-user-group/index.js.map +1 -0
  106. package/dist/src/components/user-user-group/user-user-group.repository.d.ts +5 -0
  107. package/dist/src/components/user-user-group/user-user-group.repository.js +12 -0
  108. package/dist/src/components/user-user-group/user-user-group.repository.js.map +1 -0
  109. package/dist/src/database.d.ts +4 -0
  110. package/dist/src/database.js +15 -0
  111. package/dist/src/database.js.map +1 -0
  112. package/dist/src/enum/index.d.ts +1 -0
  113. package/dist/src/enum/index.js +18 -0
  114. package/dist/src/enum/index.js.map +1 -0
  115. package/dist/src/enum/yn.enum.d.ts +4 -0
  116. package/dist/src/enum/yn.enum.js +9 -0
  117. package/dist/src/enum/yn.enum.js.map +1 -0
  118. package/dist/src/index.d.ts +5 -0
  119. package/dist/src/index.js +24 -0
  120. package/dist/src/index.js.map +1 -0
  121. package/dist/src/interfaces/index.d.ts +2 -0
  122. package/dist/src/interfaces/index.js +19 -0
  123. package/dist/src/interfaces/index.js.map +1 -0
  124. package/dist/src/interfaces/system-login.interface.d.ts +6 -0
  125. package/dist/src/interfaces/system-login.interface.js +3 -0
  126. package/dist/src/interfaces/system-login.interface.js.map +1 -0
  127. package/dist/src/interfaces/user-session.interface.d.ts +4 -0
  128. package/dist/src/interfaces/user-session.interface.js +3 -0
  129. package/dist/src/interfaces/user-session.interface.js.map +1 -0
  130. package/dist/src/models/authorization-code.entity.d.ts +14 -0
  131. package/dist/src/models/authorization-code.entity.js +86 -0
  132. package/dist/src/models/authorization-code.entity.js.map +1 -0
  133. package/dist/src/models/bearer-token.entity.d.ts +11 -0
  134. package/dist/src/models/bearer-token.entity.js +72 -0
  135. package/dist/src/models/bearer-token.entity.js.map +1 -0
  136. package/dist/src/models/building-type.entity.d.ts +7 -0
  137. package/dist/src/models/building-type.entity.js +50 -0
  138. package/dist/src/models/building-type.entity.js.map +1 -0
  139. package/dist/src/models/building.entity.d.ts +39 -0
  140. package/dist/src/models/building.entity.js +251 -0
  141. package/dist/src/models/building.entity.js.map +1 -0
  142. package/dist/src/models/city.entity.d.ts +11 -0
  143. package/dist/src/models/city.entity.js +72 -0
  144. package/dist/src/models/city.entity.js.map +1 -0
  145. package/dist/src/models/company.entity.d.ts +18 -0
  146. package/dist/src/models/company.entity.js +114 -0
  147. package/dist/src/models/company.entity.js.map +1 -0
  148. package/dist/src/models/country.entity.d.ts +13 -0
  149. package/dist/src/models/country.entity.js +76 -0
  150. package/dist/src/models/country.entity.js.map +1 -0
  151. package/dist/src/models/department.entity.d.ts +19 -0
  152. package/dist/src/models/department.entity.js +112 -0
  153. package/dist/src/models/department.entity.js.map +1 -0
  154. package/dist/src/models/group-role-privilege.entity.d.ts +17 -0
  155. package/dist/src/models/group-role-privilege.entity.js +90 -0
  156. package/dist/src/models/group-role-privilege.entity.js.map +1 -0
  157. package/dist/src/models/group-system-access.entity.d.ts +11 -0
  158. package/dist/src/models/group-system-access.entity.js +62 -0
  159. package/dist/src/models/group-system-access.entity.js.map +1 -0
  160. package/dist/src/models/group-system-privilege.entity.d.ts +11 -0
  161. package/dist/src/models/group-system-privilege.entity.js +62 -0
  162. package/dist/src/models/group-system-privilege.entity.js.map +1 -0
  163. package/dist/src/models/group-system-role.entity.d.ts +11 -0
  164. package/dist/src/models/group-system-role.entity.js +62 -0
  165. package/dist/src/models/group-system-role.entity.js.map +1 -0
  166. package/dist/src/models/login-history.entity.d.ts +12 -0
  167. package/dist/src/models/login-history.entity.js +70 -0
  168. package/dist/src/models/login-history.entity.js.map +1 -0
  169. package/dist/src/models/oauth-token.entity.d.ts +14 -0
  170. package/dist/src/models/oauth-token.entity.js +86 -0
  171. package/dist/src/models/oauth-token.entity.js.map +1 -0
  172. package/dist/src/models/role.entity.d.ts +17 -0
  173. package/dist/src/models/role.entity.js +102 -0
  174. package/dist/src/models/role.entity.js.map +1 -0
  175. package/dist/src/models/staff-type.entity.d.ts +7 -0
  176. package/dist/src/models/staff-type.entity.js +50 -0
  177. package/dist/src/models/staff-type.entity.js.map +1 -0
  178. package/dist/src/models/staff.entity.d.ts +39 -0
  179. package/dist/src/models/staff.entity.js +250 -0
  180. package/dist/src/models/staff.entity.js.map +1 -0
  181. package/dist/src/models/state.entity.d.ts +10 -0
  182. package/dist/src/models/state.entity.js +64 -0
  183. package/dist/src/models/state.entity.js.map +1 -0
  184. package/dist/src/models/system-accesss.entity.d.ts +6 -0
  185. package/dist/src/models/system-accesss.entity.js +51 -0
  186. package/dist/src/models/system-accesss.entity.js.map +1 -0
  187. package/dist/src/models/system-privilege.entity.d.ts +16 -0
  188. package/dist/src/models/system-privilege.entity.js +90 -0
  189. package/dist/src/models/system-privilege.entity.js.map +1 -0
  190. package/dist/src/models/system-role-privilege.entity.d.ts +11 -0
  191. package/dist/src/models/system-role-privilege.entity.js +60 -0
  192. package/dist/src/models/system-role-privilege.entity.js.map +1 -0
  193. package/dist/src/models/system-role.entity.d.ts +11 -0
  194. package/dist/src/models/system-role.entity.js +83 -0
  195. package/dist/src/models/system-role.entity.js.map +1 -0
  196. package/dist/src/models/system.entity.d.ts +19 -0
  197. package/dist/src/models/system.entity.js +146 -0
  198. package/dist/src/models/system.entity.js.map +1 -0
  199. package/dist/src/models/user-group.entity.d.ts +23 -0
  200. package/dist/src/models/user-group.entity.js +140 -0
  201. package/dist/src/models/user-group.entity.js.map +1 -0
  202. package/dist/src/models/user-role.entity.d.ts +12 -0
  203. package/dist/src/models/user-role.entity.js +73 -0
  204. package/dist/src/models/user-role.entity.js.map +1 -0
  205. package/dist/src/models/user-system-privileges.entity.d.ts +13 -0
  206. package/dist/src/models/user-system-privileges.entity.js +89 -0
  207. package/dist/src/models/user-system-privileges.entity.js.map +1 -0
  208. package/dist/src/models/user-system-role.entity.d.ts +11 -0
  209. package/dist/src/models/user-system-role.entity.js +60 -0
  210. package/dist/src/models/user-system-role.entity.js.map +1 -0
  211. package/dist/src/models/user-user-group.entity.d.ts +14 -0
  212. package/dist/src/models/user-user-group.entity.js +73 -0
  213. package/dist/src/models/user-user-group.entity.js.map +1 -0
  214. package/dist/src/models/user.entity.d.ts +40 -0
  215. package/dist/src/models/user.entity.js +191 -0
  216. package/dist/src/models/user.entity.js.map +1 -0
  217. package/dist/src/redis-client/__mocks__/jest-initial-setup.d.ts +1 -0
  218. package/dist/src/redis-client/__mocks__/jest-initial-setup.js +5 -0
  219. package/dist/src/redis-client/__mocks__/jest-initial-setup.js.map +1 -0
  220. package/dist/src/redis-client/__mocks__/redis-mock.d.ts +2 -0
  221. package/dist/src/redis-client/__mocks__/redis-mock.js +23 -0
  222. package/dist/src/redis-client/__mocks__/redis-mock.js.map +1 -0
  223. package/dist/src/redis-client/index.d.ts +1 -0
  224. package/dist/src/redis-client/index.js +18 -0
  225. package/dist/src/redis-client/index.js.map +1 -0
  226. package/dist/src/redis-client/redis.service.d.ts +7 -0
  227. package/dist/src/redis-client/redis.service.js +61 -0
  228. package/dist/src/redis-client/redis.service.js.map +1 -0
  229. package/dist/src/session/index.d.ts +2 -0
  230. package/dist/src/session/index.js +19 -0
  231. package/dist/src/session/index.js.map +1 -0
  232. package/dist/src/session/interfaces/index.d.ts +1 -0
  233. package/dist/src/session/interfaces/index.js +18 -0
  234. package/dist/src/session/interfaces/index.js.map +1 -0
  235. package/dist/src/session/interfaces/session-service.interface.d.ts +6 -0
  236. package/dist/src/session/interfaces/session-service.interface.js +3 -0
  237. package/dist/src/session/interfaces/session-service.interface.js.map +1 -0
  238. package/dist/src/session/session.service.d.ts +10 -0
  239. package/dist/src/session/session.service.js +63 -0
  240. package/dist/src/session/session.service.js.map +1 -0
  241. package/dist/tsconfig.tsbuildinfo +1 -0
  242. package/package.json +2 -2
  243. package/src/components/login-user/interfaces/user-info.interface.ts +29 -29
  244. package/src/components/login-user/login-user.ts +749 -749
  245. package/src/enum/index.ts +1 -1
  246. package/src/enum/yn.enum.ts +4 -4
  247. package/src/models/user.entity.ts +160 -160
@@ -0,0 +1,588 @@
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
+ exports.LoginUser = void 0;
13
+ const general_1 = require("@tomei/general");
14
+ const user_repository_1 = require("./user.repository");
15
+ const system_repository_1 = require("../system/system.repository");
16
+ const system_access_repository_1 = require("../system-access/system-access.repository");
17
+ const login_history_repository_1 = require("../login-history/login-history.repository");
18
+ const user_user_group_repository_1 = require("../user-user-group/user-user-group.repository");
19
+ const password_hash_service_1 = require("../password-hash/password-hash.service");
20
+ const user_group_repository_1 = require("../user-group/user-group.repository");
21
+ const mailer_1 = require("@tomei/mailer");
22
+ const staff_entity_1 = require("../../models/staff.entity");
23
+ const system_privilege_entity_1 = require("../../models/system-privilege.entity");
24
+ const group_system_privilege_entity_1 = require("../../models/group-system-privilege.entity");
25
+ const group_role_privilege_entity_1 = require("../../models/group-role-privilege.entity");
26
+ const user_group_entity_1 = require("../../models/user-group.entity");
27
+ class LoginUser extends general_1.LoginUserBase {
28
+ get UserId() {
29
+ return parseInt(this.ObjectId);
30
+ }
31
+ set UserId(value) {
32
+ this.ObjectId = value.toString();
33
+ }
34
+ get Password() {
35
+ return this._Password;
36
+ }
37
+ set Password(value) {
38
+ this._Password = value;
39
+ }
40
+ get Status() {
41
+ return this._Status;
42
+ }
43
+ set Status(value) {
44
+ this._Status = value;
45
+ }
46
+ get DefaultPasswordChangedYN() {
47
+ return this._DefaultPasswordChangedYN;
48
+ }
49
+ set DefaultPasswordChangedYN(value) {
50
+ this._DefaultPasswordChangedYN = value;
51
+ }
52
+ get FirstLoginAt() {
53
+ return this._FirstLoginAt;
54
+ }
55
+ set FirstLoginAt(value) {
56
+ this._FirstLoginAt = value;
57
+ }
58
+ get LastLoginAt() {
59
+ return this._LastLoginAt;
60
+ }
61
+ set LastLoginAt(value) {
62
+ this._LastLoginAt = value;
63
+ }
64
+ get MFAEnabled() {
65
+ return this._MFAEnabled;
66
+ }
67
+ set MFAEnabled(value) {
68
+ this._MFAEnabled = value;
69
+ }
70
+ get MFAConfig() {
71
+ return this._MFAConfig;
72
+ }
73
+ set MFAConfig(value) {
74
+ this._MFAConfig = value;
75
+ }
76
+ get RecoveryEmail() {
77
+ return this._RecoveryEmail;
78
+ }
79
+ set RecoveryEmail(value) {
80
+ this._RecoveryEmail = value;
81
+ }
82
+ get FailedLoginAttemptCount() {
83
+ return this._FailedLoginAttemptCount;
84
+ }
85
+ set FailedLoginAttemptCount(value) {
86
+ this._FailedLoginAttemptCount = value;
87
+ }
88
+ get LastFailedLoginAt() {
89
+ return this._LastFailedLoginAt;
90
+ }
91
+ set LastFailedLoginAt(value) {
92
+ this._LastFailedLoginAt = value;
93
+ }
94
+ get LastPasswordChangedAt() {
95
+ return this._LastPasswordChangedAt;
96
+ }
97
+ set LastPasswordChangedAt(value) {
98
+ this._LastPasswordChangedAt = value;
99
+ }
100
+ get NeedToChangePasswordYN() {
101
+ return this._NeedToChangePasswordYN;
102
+ }
103
+ set NeedToChangePasswordYN(value) {
104
+ this._NeedToChangePasswordYN = value;
105
+ }
106
+ get CreatedById() {
107
+ return this._CreatedById;
108
+ }
109
+ set CreatedById(value) {
110
+ this._CreatedById = value;
111
+ }
112
+ get CreatedAt() {
113
+ return this._CreatedAt;
114
+ }
115
+ set CreatedAt(value) {
116
+ this._CreatedAt = value;
117
+ }
118
+ get UpdatedById() {
119
+ return this._UpdatedById;
120
+ }
121
+ set UpdatedById(value) {
122
+ this._UpdatedById = value;
123
+ }
124
+ get UpdatedAt() {
125
+ return this._UpdatedAt;
126
+ }
127
+ set UpdatedAt(value) {
128
+ this._UpdatedAt = value;
129
+ }
130
+ getDetails() {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ return {
133
+ FullName: this.FullName,
134
+ IDNo: this.IDNo,
135
+ IDType: this.IDType,
136
+ Email: this.Email,
137
+ ContactNo: this.ContactNo,
138
+ };
139
+ });
140
+ }
141
+ constructor(sessionService, dbTransaction, userInfo) {
142
+ super();
143
+ this.ObjectName = 'User';
144
+ this.TableName = 'sso_Users';
145
+ this.ObjectType = 'User';
146
+ this._PasswordHashService = new password_hash_service_1.PasswordHashService();
147
+ this._SessionService = sessionService;
148
+ if (dbTransaction) {
149
+ this._dbTransaction = dbTransaction;
150
+ }
151
+ if (userInfo) {
152
+ this.UserId = userInfo.UserId;
153
+ this.FullName = userInfo.FullName;
154
+ this.IDNo = userInfo.IDNo;
155
+ this.Email = userInfo.Email;
156
+ this.ContactNo = userInfo.ContactNo;
157
+ this.Password = userInfo.Password;
158
+ this.staffs = userInfo.staffs;
159
+ }
160
+ }
161
+ static init(sessionService, userId, dbTransaction = null) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ if (userId) {
164
+ if (dbTransaction) {
165
+ LoginUser._Repository = new user_repository_1.UserRepository();
166
+ }
167
+ const user = yield LoginUser._Repository.findOne({
168
+ where: {
169
+ UserId: userId,
170
+ },
171
+ include: [
172
+ {
173
+ model: staff_entity_1.default,
174
+ },
175
+ ],
176
+ });
177
+ if (!user) {
178
+ throw new Error('Invalid credentials.');
179
+ }
180
+ if (user) {
181
+ const userAttr = {
182
+ UserId: user.UserId,
183
+ FullName: user.Staff.FullName,
184
+ IDNo: user.Staff.IdNo,
185
+ ContactNo: user.Staff.Mobile,
186
+ Email: user.Email,
187
+ Password: user.Password,
188
+ Status: user.Status,
189
+ DefaultPasswordChangedYN: user.DefaultPasswordChangedYN,
190
+ FirstLoginAt: user.FirstLoginAt,
191
+ LastLoginAt: user.LastLoginAt,
192
+ MFAEnabled: user.MFAEnabled,
193
+ MFAConfig: user.MFAConfig,
194
+ RecoveryEmail: user.RecoveryEmail,
195
+ FailedLoginAttemptCount: user.FailedLoginAttemptCount,
196
+ LastFailedLoginAt: user.LastFailedLoginAt,
197
+ LastPasswordChangedAt: user.LastPasswordChangedAt,
198
+ NeedToChangePasswordYN: user.NeedToChangePasswordYN,
199
+ CreatedById: user.CreatedById,
200
+ CreatedAt: user.CreatedAt,
201
+ UpdatedById: user.UpdatedById,
202
+ UpdatedAt: user.UpdatedAt,
203
+ staffs: user.Staff,
204
+ };
205
+ return new LoginUser(sessionService, dbTransaction, userAttr);
206
+ }
207
+ else {
208
+ throw new Error('User not found');
209
+ }
210
+ }
211
+ return new LoginUser(sessionService, dbTransaction);
212
+ });
213
+ }
214
+ login(systemCode, email, password, ipAddress) {
215
+ return __awaiter(this, void 0, void 0, function* () {
216
+ try {
217
+ if (!this.ObjectId) {
218
+ const user = yield LoginUser._Repository.findOne({
219
+ where: {
220
+ Email: email,
221
+ },
222
+ include: [
223
+ {
224
+ model: staff_entity_1.default,
225
+ },
226
+ ],
227
+ });
228
+ const userAttr = {
229
+ UserId: user.UserId,
230
+ FullName: user.Staff.FullName,
231
+ IDNo: user.Staff.IdNo,
232
+ ContactNo: user.Staff.Mobile,
233
+ Email: user.Email,
234
+ Password: user.Password,
235
+ Status: user.Status,
236
+ DefaultPasswordChangedYN: user.DefaultPasswordChangedYN,
237
+ FirstLoginAt: user.FirstLoginAt,
238
+ LastLoginAt: user.LastLoginAt,
239
+ MFAEnabled: user.MFAEnabled,
240
+ MFAConfig: user.MFAConfig,
241
+ RecoveryEmail: user.RecoveryEmail,
242
+ FailedLoginAttemptCount: user.FailedLoginAttemptCount,
243
+ LastFailedLoginAt: user.LastFailedLoginAt,
244
+ LastPasswordChangedAt: user.LastPasswordChangedAt,
245
+ NeedToChangePasswordYN: user.NeedToChangePasswordYN,
246
+ CreatedById: user.CreatedById,
247
+ CreatedAt: user.CreatedAt,
248
+ UpdatedById: user.UpdatedById,
249
+ UpdatedAt: user.UpdatedAt,
250
+ staffs: user.Staff,
251
+ };
252
+ this.UserId = userAttr.UserId;
253
+ this.FullName = userAttr.FullName;
254
+ this.IDNo = userAttr.IDNo;
255
+ this.Email = userAttr.Email;
256
+ this.ContactNo = userAttr.ContactNo;
257
+ this.Password = userAttr.Password;
258
+ this.Status = userAttr.Status;
259
+ this.DefaultPasswordChangedYN = userAttr.DefaultPasswordChangedYN;
260
+ this.FirstLoginAt = userAttr.FirstLoginAt;
261
+ this.LastLoginAt = userAttr.LastLoginAt;
262
+ this.MFAEnabled = userAttr.MFAEnabled;
263
+ this.MFAConfig = userAttr.MFAConfig;
264
+ this.RecoveryEmail = userAttr.RecoveryEmail;
265
+ this.FailedLoginAttemptCount = userAttr.FailedLoginAttemptCount;
266
+ this.LastFailedLoginAt = userAttr.LastFailedLoginAt;
267
+ this.LastPasswordChangedAt = userAttr.LastPasswordChangedAt;
268
+ this.NeedToChangePasswordYN = userAttr.NeedToChangePasswordYN;
269
+ this.CreatedById = userAttr.CreatedById;
270
+ this.CreatedAt = userAttr.CreatedAt;
271
+ this.UpdatedById = userAttr.UpdatedById;
272
+ this.UpdatedAt = userAttr.UpdatedAt;
273
+ this.staffs = userAttr.staffs;
274
+ }
275
+ if (this.ObjectId && this.Email !== email) {
276
+ throw new Error('Invalid credentials.');
277
+ }
278
+ const isPasswordValid = yield this._PasswordHashService.verify(password, this.Password);
279
+ if (!isPasswordValid) {
280
+ throw new Error('Invalid credentials.');
281
+ }
282
+ const system = yield LoginUser._SystemRepository.findOne({
283
+ where: {
284
+ code: systemCode,
285
+ },
286
+ });
287
+ if (!system) {
288
+ throw new Error('Invalid system code.');
289
+ }
290
+ yield this.checkSystemAccess(this.UserId, system.id);
291
+ yield this.alertNewLogin(this.ObjectId, system.id.toString(), ipAddress);
292
+ const userSession = yield this._SessionService.retrieveUserSession(this.ObjectId);
293
+ let systemLogin = userSession.systemLogins.find((system) => system.code === systemCode);
294
+ const { randomUUID } = require('crypto');
295
+ const sessionId = randomUUID();
296
+ if (systemLogin) {
297
+ systemLogin = systemLogin.sessionId = sessionId;
298
+ userSession.systemLogins.map((system) => system.code === systemCode ? systemLogin : system);
299
+ }
300
+ else {
301
+ const newLogin = {
302
+ id: system.id.toString(),
303
+ code: system.Code,
304
+ sessionId: sessionId,
305
+ privileges: yield this.getPrivileges(system.Code),
306
+ };
307
+ userSession.systemLogins.push(newLogin);
308
+ }
309
+ this._SessionService.setUserSession(this.ObjectId, userSession);
310
+ yield LoginUser._LoginHistoryRepository.create({
311
+ UserId: this.UserId,
312
+ SystemId: system.id,
313
+ OriginIp: ipAddress,
314
+ CreatedAt: new Date(),
315
+ });
316
+ return `${this.UserId}:${sessionId}`;
317
+ }
318
+ catch (error) {
319
+ throw error;
320
+ }
321
+ });
322
+ }
323
+ checkSystemAccess(userId, systemId) {
324
+ return __awaiter(this, void 0, void 0, function* () {
325
+ try {
326
+ const systemAccess = yield LoginUser._SystemAccessRepository.findOne({
327
+ where: {
328
+ UserId: userId,
329
+ SystemId: systemId,
330
+ },
331
+ });
332
+ if (!systemAccess) {
333
+ throw new Error("User don't have access to the system.");
334
+ }
335
+ }
336
+ catch (error) {
337
+ throw error;
338
+ }
339
+ });
340
+ }
341
+ alertNewLogin(userId, systemId, ipAddress) {
342
+ return __awaiter(this, void 0, void 0, function* () {
343
+ try {
344
+ const userLogins = yield LoginUser._LoginHistoryRepository.findAll({
345
+ where: {
346
+ UserId: userId,
347
+ SystemId: systemId,
348
+ },
349
+ });
350
+ const gotPreviousLogins = (userLogins === null || userLogins === void 0 ? void 0 : userLogins.length) !== 0;
351
+ let ipFound = undefined;
352
+ if (gotPreviousLogins) {
353
+ ipFound = userLogins.find((item) => item.OriginIp === ipAddress);
354
+ }
355
+ if (gotPreviousLogins && !ipFound) {
356
+ const EMAIL_SENDER = process.env.EMAIL_SENDER || 'itd-system@tomei.com.my';
357
+ const transporter = new mailer_1.SMTPMailer();
358
+ yield transporter.sendMail({
359
+ from: EMAIL_SENDER,
360
+ to: this.Email,
361
+ subject: 'New Login Alert',
362
+ html: `<p>Dear ${this.FullName},</p>
363
+ <p>There was a new login to your account from ${ipAddress} on ${new Date().toLocaleString()}.</p>
364
+ <p>If this was you, you can safely ignore this email.</p>
365
+ <p>If you suspect that someone else is trying to access your account, please contact us immediately at itd-support@tomei.com.my.</p>
366
+ <p>Thank you!,</p>
367
+ <p>
368
+ Best Regards,
369
+ IT Department
370
+ </p>`,
371
+ });
372
+ }
373
+ }
374
+ catch (error) {
375
+ throw error;
376
+ }
377
+ });
378
+ }
379
+ getPrivileges(systemCode) {
380
+ return __awaiter(this, void 0, void 0, function* () {
381
+ try {
382
+ const system = yield LoginUser._SystemRepository.findOne({
383
+ where: {
384
+ Code: systemCode,
385
+ },
386
+ });
387
+ if (!system) {
388
+ throw new Error('Invalid system code.');
389
+ }
390
+ const userUserGroups = yield this.getUserUserGroupFromDB(system.id);
391
+ const userGroupData = userUserGroups.map((u) => u.UserGroup);
392
+ let privileges = [];
393
+ for (const userGroup of userGroupData) {
394
+ const groupSystemPrivileges = userGroup.GroupSystemPrivileges.map((g) => g.SystemPrivilege.Code);
395
+ const groupRolePrivileges = userGroup.GroupRolePrivileges.map((g) => g.SystemPrivilege.Code);
396
+ if (userGroup.GroupLevel !== 0 &&
397
+ userGroup.AllowInheritFromParentYN === 'Y') {
398
+ const parentTreePrivileges = yield this.getPrivilegesFromUserGroup(userGroup.ParentGroupCode);
399
+ privileges = [...privileges, ...parentTreePrivileges];
400
+ }
401
+ privileges = [
402
+ ...privileges,
403
+ ...groupSystemPrivileges,
404
+ ...groupRolePrivileges,
405
+ ];
406
+ }
407
+ const userPrivileges = yield this.getUserPersonalPrivileges(system.id);
408
+ privileges = [...privileges, ...userPrivileges];
409
+ privileges = [...new Set(privileges)];
410
+ return privileges;
411
+ }
412
+ catch (error) {
413
+ throw error;
414
+ }
415
+ });
416
+ }
417
+ getPrivilegesFromUserGroup(groupCode) {
418
+ return __awaiter(this, void 0, void 0, function* () {
419
+ try {
420
+ const userGroup = yield this.getUserGroupFromDB(groupCode);
421
+ let privileges = [];
422
+ privileges = [
423
+ ...privileges,
424
+ ...userGroup.GroupSystemPrivileges.map((g) => g.SystemPrivilege.Code),
425
+ ...userGroup.GroupRolePrivileges.map((g) => g.SystemPrivilege.Code),
426
+ ];
427
+ const isContinue = userGroup.GroupLevel !== 0 &&
428
+ userGroup.AllowInheritFromParentYN === 'Y';
429
+ if (isContinue) {
430
+ const recursivePrivileges = yield this.getPrivilegesFromUserGroup(userGroup.ParentGroupCode);
431
+ privileges = privileges.concat(recursivePrivileges);
432
+ }
433
+ return privileges;
434
+ }
435
+ catch (error) {
436
+ throw error;
437
+ }
438
+ });
439
+ }
440
+ getUserGroupFromDB(groupCode) {
441
+ return __awaiter(this, void 0, void 0, function* () {
442
+ try {
443
+ const userGroup = yield LoginUser._UserGroupRepository.findOne({
444
+ where: {
445
+ GroupCode: groupCode,
446
+ },
447
+ include: [
448
+ {
449
+ model: group_system_privilege_entity_1.default,
450
+ include: {
451
+ model: system_privilege_entity_1.default,
452
+ },
453
+ },
454
+ {
455
+ model: group_role_privilege_entity_1.default,
456
+ include: {
457
+ model: system_privilege_entity_1.default,
458
+ },
459
+ },
460
+ ],
461
+ });
462
+ return userGroup;
463
+ }
464
+ catch (error) {
465
+ throw error;
466
+ }
467
+ });
468
+ }
469
+ getUserUserGroupFromDB(systemCode) {
470
+ return __awaiter(this, void 0, void 0, function* () {
471
+ try {
472
+ return yield LoginUser._UserUserGroupRepository.findAll({
473
+ where: {
474
+ UserId: this.UserId,
475
+ SystemId: systemCode,
476
+ },
477
+ include: {
478
+ model: user_group_entity_1.default,
479
+ include: [
480
+ {
481
+ model: group_system_privilege_entity_1.default,
482
+ include: {
483
+ model: system_privilege_entity_1.default,
484
+ },
485
+ },
486
+ {
487
+ model: group_role_privilege_entity_1.default,
488
+ include: {
489
+ model: system_privilege_entity_1.default,
490
+ },
491
+ },
492
+ ],
493
+ },
494
+ });
495
+ }
496
+ catch (error) {
497
+ throw error;
498
+ }
499
+ });
500
+ }
501
+ getUserPersonalPrivileges(systemId) {
502
+ return __awaiter(this, void 0, void 0, function* () {
503
+ try {
504
+ const userRole = yield LoginUser._Repository.findOne({
505
+ where: {
506
+ UserId: this.ObjectId,
507
+ },
508
+ include: {
509
+ model: system_privilege_entity_1.default,
510
+ },
511
+ });
512
+ let userSystemPrivileges = userRole.SystemPrivileges;
513
+ userSystemPrivileges = userSystemPrivileges.filter((u) => u.SystemId === systemId);
514
+ const userPrivileges = userSystemPrivileges.map((u) => u.Code);
515
+ return userPrivileges;
516
+ }
517
+ catch (error) {
518
+ throw error;
519
+ }
520
+ });
521
+ }
522
+ checkPrivileges(systemCode, privilegeName) {
523
+ return __awaiter(this, void 0, void 0, function* () {
524
+ try {
525
+ if (!this.ObjectId) {
526
+ throw new Error('ObjectId(UserId) is not set');
527
+ }
528
+ const userSession = yield this._SessionService.retrieveUserSession(this.ObjectId);
529
+ const systemLogin = userSession.systemLogins.find((system) => system.code === systemCode);
530
+ if (!systemLogin) {
531
+ return false;
532
+ }
533
+ const privileges = systemLogin.privileges;
534
+ const hasPrivilege = privileges.includes(privilegeName);
535
+ return hasPrivilege;
536
+ }
537
+ catch (error) {
538
+ throw error;
539
+ }
540
+ });
541
+ }
542
+ checkSession(systemCode, sessionId, userId) {
543
+ return __awaiter(this, void 0, void 0, function* () {
544
+ try {
545
+ const userSession = yield this._SessionService.retrieveUserSession(userId);
546
+ if (userSession.systemLogins.length === 0) {
547
+ throw new Error('Session expired.');
548
+ }
549
+ const systemLogin = userSession.systemLogins.find((sl) => sl.code === systemCode);
550
+ if (!systemLogin) {
551
+ throw new Error('Session expired.');
552
+ }
553
+ if (systemLogin.sessionId !== sessionId) {
554
+ throw new Error('Session expired.');
555
+ }
556
+ yield this._SessionService.refreshDuration(userId);
557
+ return systemLogin;
558
+ }
559
+ catch (error) {
560
+ throw error;
561
+ }
562
+ });
563
+ }
564
+ logout(systemCode) {
565
+ return __awaiter(this, void 0, void 0, function* () {
566
+ try {
567
+ if (!this.ObjectId) {
568
+ throw new Error('ObjectId(UserId) is not set');
569
+ }
570
+ const userSession = yield this._SessionService.retrieveUserSession(this.ObjectId);
571
+ const index = userSession.systemLogins.findIndex((system) => system.code === systemCode);
572
+ userSession.systemLogins.splice(index, 1);
573
+ this._SessionService.setUserSession(this.ObjectId, userSession);
574
+ }
575
+ catch (error) {
576
+ throw error;
577
+ }
578
+ });
579
+ }
580
+ }
581
+ exports.LoginUser = LoginUser;
582
+ LoginUser._Repository = new user_repository_1.UserRepository();
583
+ LoginUser._SystemRepository = new system_repository_1.SystemRepository();
584
+ LoginUser._SystemAccessRepository = new system_access_repository_1.SystemAccessRepository();
585
+ LoginUser._LoginHistoryRepository = new login_history_repository_1.LoginHistoryRepository();
586
+ LoginUser._UserUserGroupRepository = new user_user_group_repository_1.UserUserGroupRepository();
587
+ LoginUser._UserGroupRepository = new user_group_repository_1.UserGroupRepository();
588
+ //# sourceMappingURL=login-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-user.js","sourceRoot":"","sources":["../../../../src/components/login-user/login-user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import User from '../../models/user.entity';
2
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
3
+ export declare class UserRepository extends RepositoryBase<User> implements IRepositoryBase<User> {
4
+ constructor();
5
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserRepository = void 0;
4
+ const user_entity_1 = require("../../models/user.entity");
5
+ const general_1 = require("@tomei/general");
6
+ class UserRepository extends general_1.RepositoryBase {
7
+ constructor() {
8
+ super(user_entity_1.default);
9
+ }
10
+ }
11
+ exports.UserRepository = UserRepository;
12
+ //# sourceMappingURL=user.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../../src/components/login-user/user.repository.ts"],"names":[],"mappings":";;;AAAA,0DAA4C;AAC5C,4CAAiE;AAEjE,MAAa,cACX,SAAQ,wBAAoB;IAG5B;QACE,KAAK,CAAC,qBAAI,CAAC,CAAC;IACd,CAAC;CACF;AAPD,wCAOC"}
@@ -0,0 +1,2 @@
1
+ export * from './interfaces';
2
+ export * from './password-hash.service';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./interfaces"), exports);
18
+ __exportStar(require("./password-hash.service"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/password-hash/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,0DAAwC"}
@@ -0,0 +1 @@
1
+ export * from './password-hash-service.interface';