@tomei/sso 0.8.0 → 0.8.2

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 (199) hide show
  1. package/Jenkinsfile +2 -2
  2. package/__tests__/unit/components/login-history/login-history.repository.spec.ts +88 -88
  3. package/__tests__/unit/components/login-user/login-user.spec.ts +731 -731
  4. package/__tests__/unit/components/login-user/user.repository.spec.ts +75 -75
  5. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +26 -26
  6. package/__tests__/unit/components/system/system.repository.spec.ts +82 -82
  7. package/__tests__/unit/components/system-access/system-access.repository.spec.ts +72 -72
  8. package/dist/__tests__/unit/components/login-history/login-history.repository.spec.d.ts +0 -1
  9. package/dist/__tests__/unit/components/login-history/login-history.repository.spec.js +0 -98
  10. package/dist/__tests__/unit/components/login-history/login-history.repository.spec.js.map +1 -1
  11. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -1
  12. package/dist/__tests__/unit/components/login-user/login-user.spec.js +0 -659
  13. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -1
  14. package/dist/__tests__/unit/components/login-user/user.repository.spec.d.ts +0 -1
  15. package/dist/__tests__/unit/components/login-user/user.repository.spec.js +0 -77
  16. package/dist/__tests__/unit/components/login-user/user.repository.spec.js.map +1 -1
  17. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.d.ts +0 -1
  18. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.js +0 -37
  19. package/dist/__tests__/unit/components/password-hash/password-hash.service.spec.js.map +1 -1
  20. package/dist/__tests__/unit/components/system/system.repository.spec.d.ts +0 -1
  21. package/dist/__tests__/unit/components/system/system.repository.spec.js +0 -84
  22. package/dist/__tests__/unit/components/system/system.repository.spec.js.map +1 -1
  23. package/dist/__tests__/unit/components/system-access/system-access.repository.spec.d.ts +0 -1
  24. package/dist/__tests__/unit/components/system-access/system-access.repository.spec.js +0 -74
  25. package/dist/__tests__/unit/components/system-access/system-access.repository.spec.js.map +1 -1
  26. package/dist/src/components/login-history/login-history.repository.d.ts +4 -8
  27. package/dist/src/components/login-history/login-history.repository.js +5 -43
  28. package/dist/src/components/login-history/login-history.repository.js.map +1 -1
  29. package/dist/src/components/login-user/login-user.d.ts +1 -0
  30. package/dist/src/components/login-user/login-user.js +61 -55
  31. package/dist/src/components/login-user/login-user.js.map +1 -1
  32. package/dist/src/components/login-user/user.repository.d.ts +4 -8
  33. package/dist/src/components/login-user/user.repository.js +5 -43
  34. package/dist/src/components/login-user/user.repository.js.map +1 -1
  35. package/dist/src/components/system/system.repository.d.ts +4 -8
  36. package/dist/src/components/system/system.repository.js +5 -43
  37. package/dist/src/components/system/system.repository.js.map +1 -1
  38. package/dist/src/components/system-access/system-access.repository.d.ts +4 -8
  39. package/dist/src/components/system-access/system-access.repository.js +5 -43
  40. package/dist/src/components/system-access/system-access.repository.js.map +1 -1
  41. package/dist/src/components/user-group/user-group.repository.d.ts +4 -8
  42. package/dist/src/components/user-group/user-group.repository.js +5 -43
  43. package/dist/src/components/user-group/user-group.repository.js.map +1 -1
  44. package/dist/src/components/user-user-group/user-user-group.repository.d.ts +4 -8
  45. package/dist/src/components/user-user-group/user-user-group.repository.js +5 -43
  46. package/dist/src/components/user-user-group/user-user-group.repository.js.map +1 -1
  47. package/dist/src/database.d.ts +4 -0
  48. package/dist/src/database.js +15 -0
  49. package/dist/src/database.js.map +1 -0
  50. package/dist/src/models/authorization-code.entity.d.ts +14 -0
  51. package/dist/src/models/authorization-code.entity.js +86 -0
  52. package/dist/src/models/authorization-code.entity.js.map +1 -0
  53. package/dist/src/models/bearer-token.entity.d.ts +11 -0
  54. package/dist/src/models/bearer-token.entity.js +72 -0
  55. package/dist/src/models/bearer-token.entity.js.map +1 -0
  56. package/dist/src/models/building-type.entity.d.ts +7 -0
  57. package/dist/src/models/building-type.entity.js +50 -0
  58. package/dist/src/models/building-type.entity.js.map +1 -0
  59. package/dist/src/models/building.entity.d.ts +28 -0
  60. package/dist/src/models/building.entity.js +218 -0
  61. package/dist/src/models/building.entity.js.map +1 -0
  62. package/dist/src/models/city.entity.d.ts +11 -0
  63. package/dist/src/models/city.entity.js +72 -0
  64. package/dist/src/models/city.entity.js.map +1 -0
  65. package/dist/src/models/company.entity.d.ts +18 -0
  66. package/dist/src/models/company.entity.js +114 -0
  67. package/dist/src/models/company.entity.js.map +1 -0
  68. package/dist/src/models/country.entity.d.ts +15 -0
  69. package/dist/src/models/country.entity.js +92 -0
  70. package/dist/src/models/country.entity.js.map +1 -0
  71. package/dist/src/models/department.entity.d.ts +19 -0
  72. package/dist/src/models/department.entity.js +112 -0
  73. package/dist/src/models/department.entity.js.map +1 -0
  74. package/dist/src/models/group-role-privilege.entity.d.ts +17 -0
  75. package/dist/src/models/group-role-privilege.entity.js +90 -0
  76. package/dist/src/models/group-role-privilege.entity.js.map +1 -0
  77. package/dist/src/models/group-system-access.entity.d.ts +11 -0
  78. package/dist/src/models/group-system-access.entity.js +62 -0
  79. package/dist/src/models/group-system-access.entity.js.map +1 -0
  80. package/dist/src/models/group-system-privilege.entity.d.ts +11 -0
  81. package/dist/src/models/group-system-privilege.entity.js +62 -0
  82. package/dist/src/models/group-system-privilege.entity.js.map +1 -0
  83. package/dist/src/models/group-system-role.entity.d.ts +11 -0
  84. package/dist/src/models/group-system-role.entity.js +62 -0
  85. package/dist/src/models/group-system-role.entity.js.map +1 -0
  86. package/dist/src/models/login-history.entity.d.ts +12 -0
  87. package/dist/src/models/login-history.entity.js +70 -0
  88. package/dist/src/models/login-history.entity.js.map +1 -0
  89. package/dist/src/models/oauth-token.entity.d.ts +14 -0
  90. package/dist/src/models/oauth-token.entity.js +86 -0
  91. package/dist/src/models/oauth-token.entity.js.map +1 -0
  92. package/dist/src/models/role.entity.d.ts +17 -0
  93. package/dist/src/models/role.entity.js +102 -0
  94. package/dist/src/models/role.entity.js.map +1 -0
  95. package/dist/src/models/staff-type.entity.d.ts +7 -0
  96. package/dist/src/models/staff-type.entity.js +50 -0
  97. package/dist/src/models/staff-type.entity.js.map +1 -0
  98. package/dist/src/models/staff.entity.d.ts +39 -0
  99. package/dist/src/models/staff.entity.js +250 -0
  100. package/dist/src/models/staff.entity.js.map +1 -0
  101. package/dist/src/models/state.entity.d.ts +10 -0
  102. package/dist/src/models/state.entity.js +64 -0
  103. package/dist/src/models/state.entity.js.map +1 -0
  104. package/dist/src/models/system-accesss.entity.d.ts +6 -0
  105. package/dist/src/models/system-accesss.entity.js +51 -0
  106. package/dist/src/models/system-accesss.entity.js.map +1 -0
  107. package/dist/src/models/system-privilege.entity.d.ts +16 -0
  108. package/dist/src/models/system-privilege.entity.js +90 -0
  109. package/dist/src/models/system-privilege.entity.js.map +1 -0
  110. package/dist/src/models/system-role-privilege.entity.d.ts +11 -0
  111. package/dist/src/models/system-role-privilege.entity.js +60 -0
  112. package/dist/src/models/system-role-privilege.entity.js.map +1 -0
  113. package/dist/src/models/system-role.entity.d.ts +11 -0
  114. package/dist/src/models/system-role.entity.js +83 -0
  115. package/dist/src/models/system-role.entity.js.map +1 -0
  116. package/dist/src/models/system.entity.d.ts +19 -0
  117. package/dist/src/models/system.entity.js +146 -0
  118. package/dist/src/models/system.entity.js.map +1 -0
  119. package/dist/src/models/user-group.entity.d.ts +23 -0
  120. package/dist/src/models/user-group.entity.js +140 -0
  121. package/dist/src/models/user-group.entity.js.map +1 -0
  122. package/dist/src/models/user-role.entity.d.ts +9 -0
  123. package/dist/src/models/user-role.entity.js +62 -0
  124. package/dist/src/models/user-role.entity.js.map +1 -0
  125. package/dist/src/models/user-system-privileges.entity.d.ts +13 -0
  126. package/dist/src/models/user-system-privileges.entity.js +80 -0
  127. package/dist/src/models/user-system-privileges.entity.js.map +1 -0
  128. package/dist/src/models/user-system-role.entity.d.ts +11 -0
  129. package/dist/src/models/user-system-role.entity.js +60 -0
  130. package/dist/src/models/user-system-role.entity.js.map +1 -0
  131. package/dist/src/models/user-user-group.entity.d.ts +14 -0
  132. package/dist/src/models/user-user-group.entity.js +73 -0
  133. package/dist/src/models/user-user-group.entity.js.map +1 -0
  134. package/dist/src/models/user.entity.d.ts +30 -0
  135. package/dist/src/models/user.entity.js +131 -0
  136. package/dist/src/models/user.entity.js.map +1 -0
  137. package/dist/tsconfig.tsbuildinfo +1 -1
  138. package/migrations/01-alter-system-privilege-table.js +13 -0
  139. package/migrations/02-alter-user-group-table.js +78 -0
  140. package/migrations/03-alter-user-system-privilege-table.js +38 -0
  141. package/migrations/04-create-user-user-group-table.js +55 -0
  142. package/migrations/05-create-login-history-table.js +49 -0
  143. package/package.json +8 -4
  144. package/src/components/index.ts +1 -0
  145. package/src/components/login-history/login-history.repository.ts +35 -23
  146. package/src/components/login-user/login-user.ts +65 -65
  147. package/src/components/login-user/user.repository.ts +35 -23
  148. package/src/components/system/system.repository.ts +34 -23
  149. package/src/components/system-access/system-access.repository.ts +35 -23
  150. package/src/components/user-group/user-group.repository.ts +35 -23
  151. package/src/components/user-user-group/user-user-group.repository.ts +35 -23
  152. package/src/database.ts +15 -0
  153. package/src/models/authorization-code.entity.ts +71 -0
  154. package/src/models/bearer-token.entity.ts +59 -0
  155. package/src/models/building-type.entity.ts +38 -0
  156. package/src/models/building.entity.ts +185 -0
  157. package/src/models/city.entity.ts +59 -0
  158. package/src/models/company.entity.ts +96 -0
  159. package/src/models/country.entity.ts +75 -0
  160. package/src/models/department.entity.ts +94 -0
  161. package/src/models/group-role-privilege.entity.ts +73 -0
  162. package/src/models/group-system-access.entity.ts +49 -0
  163. package/src/models/group-system-privilege.entity.ts +49 -0
  164. package/src/models/group-system-role.entity.ts +49 -0
  165. package/src/models/login-history.entity.ts +56 -0
  166. package/src/models/oauth-token.entity.ts +71 -0
  167. package/src/models/role.entity.ts +85 -0
  168. package/src/models/staff-type.entity.ts +38 -0
  169. package/src/models/staff.entity.ts +213 -0
  170. package/src/models/state.entity.ts +52 -0
  171. package/src/models/system-accesss.entity.ts +40 -0
  172. package/src/models/system-privilege.entity.ts +75 -0
  173. package/src/models/system-role-privilege.entity.ts +48 -0
  174. package/src/models/system-role.entity.ts +68 -0
  175. package/src/models/system.entity.ts +122 -0
  176. package/src/models/user-group.entity.ts +118 -0
  177. package/src/models/user-role.entity.ts +50 -0
  178. package/src/models/user-system-privileges.entity.ts +66 -0
  179. package/src/models/user-system-role.entity.ts +48 -0
  180. package/src/models/user-user-group.entity.ts +59 -0
  181. package/src/models/user.entity.ts +110 -0
  182. package/dist/src/mail/index.d.ts +0 -2
  183. package/dist/src/mail/index.js +0 -19
  184. package/dist/src/mail/index.js.map +0 -1
  185. package/dist/src/mail/interfaces/index.d.ts +0 -2
  186. package/dist/src/mail/interfaces/index.js +0 -19
  187. package/dist/src/mail/interfaces/index.js.map +0 -1
  188. package/dist/src/mail/interfaces/send-mail.interface.d.ts +0 -8
  189. package/dist/src/mail/interfaces/send-mail.interface.js +0 -3
  190. package/dist/src/mail/interfaces/send-mail.interface.js.map +0 -1
  191. package/dist/src/mail/interfaces/send-new-login-alert.interface.d.ts +0 -6
  192. package/dist/src/mail/interfaces/send-new-login-alert.interface.js +0 -3
  193. package/dist/src/mail/interfaces/send-new-login-alert.interface.js.map +0 -1
  194. package/dist/src/mail/mail.d.ts +0 -7
  195. package/dist/src/mail/mail.js +0 -49
  196. package/dist/src/mail/mail.js.map +0 -1
  197. package/dist/src/mail/mail.service.d.ts +0 -7
  198. package/dist/src/mail/mail.service.js +0 -42
  199. package/dist/src/mail/mail.service.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ async up(queryInterface, Sequelize) {
5
+ await queryInterface.addColumn('sso_systemPrivilege','Module', {
6
+ type: Sequelize.STRING(200),
7
+ })
8
+ },
9
+
10
+ async down(queryInterface) {
11
+ queryInterface.removeColumn('sso_systemPrivilege','Module')
12
+ },
13
+ };
@@ -0,0 +1,78 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ return queryInterface.sequelize.transaction(async (t) => {
6
+ return await Promise.all([
7
+ queryInterface.addColumn(
8
+ 'sso_usergroup',
9
+ 'AllowInheritFromParentYN',
10
+ {
11
+ type: Sequelize.ENUM(['Y', 'N']),
12
+ defaultValue: 'N',
13
+ },
14
+ { transaction: t },
15
+ ),
16
+ queryInterface.addColumn(
17
+ 'sso_usergroup',
18
+ 'FullPath',
19
+ {
20
+ type: Sequelize.STRING(1000),
21
+ allowNull: true,
22
+ },
23
+ { transaction: t },
24
+ ),
25
+ queryInterface.addColumn(
26
+ 'sso_usergroup',
27
+ 'GroupLevel',
28
+ {
29
+ type: Sequelize.INTEGER,
30
+ allowNull: false,
31
+ defaultValue: 0,
32
+ },
33
+ { transaction: t },
34
+ ),
35
+ queryInterface.addColumn(
36
+ 'sso_usergroup',
37
+ 'GroupType',
38
+ {
39
+ type: Sequelize.STRING(10),
40
+ allowNull: true,
41
+ },
42
+ { transaction: t },
43
+ ),
44
+ queryInterface.addColumn(
45
+ 'sso_usergroup',
46
+ 'ParentGroupCode',
47
+ {
48
+ type: Sequelize.STRING(10),
49
+ allowNull: true,
50
+ },
51
+ { transaction: t },
52
+ ),
53
+ queryInterface.addColumn(
54
+ 'sso_usergroup',
55
+ 'PersonInCharge',
56
+ {
57
+ type: Sequelize.STRING(100),
58
+ allowNull: true,
59
+ },
60
+ { transaction: t },
61
+ ),
62
+ ]);
63
+ });
64
+ },
65
+
66
+ down: async (queryInterface) => {
67
+ return queryInterface.sequelize.transaction(async (t) => {
68
+ return await Promise.all([
69
+ queryInterface.removeColumn('sso_usergroup', 'AllowInheritFromParentYN', { transaction: t }),
70
+ queryInterface.removeColumn('sso_usergroup', 'FullPath', { transaction: t }),
71
+ queryInterface.removeColumn('sso_usergroup', 'GroupLevel', { transaction: t }),
72
+ queryInterface.removeColumn('sso_usergroup', 'GroupType', { transaction: t }),
73
+ queryInterface.removeColumn('sso_usergroup', 'ParentGroupCode', { transaction: t }),
74
+ queryInterface.removeColumn('sso_usergroup', 'PersonInCharge', { transaction: t }),
75
+ ]);
76
+ });
77
+ },
78
+ };
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ return queryInterface.sequelize.transaction(async (t) => {
6
+ return await Promise.all([
7
+ queryInterface.addColumn(
8
+ 'sso_usersystemprivilege',
9
+ 'IsInheritedYN',
10
+ {
11
+ type: Sequelize.ENUM(['Y', 'N']),
12
+ defaultValue: 'N',
13
+ },
14
+ { transaction: t },
15
+ ),
16
+ queryInterface.addColumn(
17
+ 'sso_usersystemprivilege',
18
+ 'IsRevokedYN',
19
+ {
20
+ type: Sequelize.ENUM(['Y', 'N']),
21
+ defaultValue: 'N',
22
+ },
23
+ { transaction: t },
24
+ ),
25
+ ]);
26
+ });
27
+ },
28
+
29
+ down: async (queryInterface) => {
30
+ return queryInterface.sequelize.transaction(async (t) => {
31
+ return await Promise.all([
32
+ queryInterface.removeColumn('sso_usersystemprivilege', 'IsInheritedYN', { transaction: t }),
33
+ queryInterface.removeColumn('sso_usersystemprivilege', 'IsRevokedYN', { transaction: t }),
34
+ ]);
35
+ });
36
+ },
37
+ };
38
+ 'use strict';
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ queryInterface.createTable('sso_UserUserGroup', {
6
+ UserId: {
7
+ primaryKey: true,
8
+ type: Sequelize.INTEGER,
9
+ allowNull: false,
10
+ references: {
11
+ model: 'sso_users',
12
+ key: 'id',
13
+ },
14
+ onDelete: 'CASCADE',
15
+ onUpdate: 'CASCADE',
16
+ },
17
+ GroupCode: {
18
+ primaryKey: true,
19
+ type: Sequelize.STRING(191),
20
+ allowNull: false,
21
+ references: {
22
+ model: 'sso_usergroup',
23
+ key: 'GroupCode',
24
+ },
25
+ onDelete: 'CASCADE',
26
+ onUpdate: 'CASCADE',
27
+ },
28
+ SystemId: {
29
+ type: Sequelize.INTEGER,
30
+ allowNull: true,
31
+ references: {
32
+ model: 'sso_systems',
33
+ key: 'id',
34
+ },
35
+ onDelete: 'CASCADE',
36
+ onUpdate: 'CASCADE',
37
+ },
38
+ CreatedAt: {
39
+ allowNull: false,
40
+ defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
41
+ type: Sequelize.DATE,
42
+ },
43
+ UpdatedAt: {
44
+ allowNull: false,
45
+ defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
46
+ type: Sequelize.DATE,
47
+ },
48
+ });
49
+
50
+ },
51
+
52
+ down: async (queryInterface) => {
53
+ await queryInterface.dropTable('sso_UserUserGroup');
54
+ },
55
+ };
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+
4
+ module.exports = {
5
+ up: async (queryInterface, Sequelize) => {
6
+ queryInterface.createTable('sso_LoginHistories', {
7
+ Id: {
8
+ primaryKey: true,
9
+ autoIncrement: true,
10
+ type: Sequelize.INTEGER,
11
+ allowNull: false,
12
+ },
13
+ UserId: {
14
+ type: Sequelize.INTEGER,
15
+ allowNull: false,
16
+ references: {
17
+ model: 'sso_users',
18
+ key: 'id',
19
+ },
20
+ onDelete: 'CASCADE',
21
+ onUpdate: 'CASCADE',
22
+ },
23
+ SystemId: {
24
+ type: Sequelize.INTEGER,
25
+ allowNull: false,
26
+ references: {
27
+ model: 'sso_systems',
28
+ key: 'id',
29
+ },
30
+ onDelete: 'CASCADE',
31
+ onUpdate: 'CASCADE',
32
+ },
33
+ OriginIP: {
34
+ type: Sequelize.STRING(191),
35
+ allowNull: false,
36
+ },
37
+ CreatedAt: {
38
+ type: Sequelize.DATE(3),
39
+ allowNull: false,
40
+ defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
41
+ },
42
+ });
43
+
44
+ },
45
+
46
+ down: async (queryInterface) => {
47
+ await queryInterface.dropTable('sso_LoginHistories');
48
+ },
49
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomei/sso",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "Tomei SSO Package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -31,8 +31,9 @@
31
31
  "@tsconfig/node18": "^2.0.1",
32
32
  "@types/bcrypt": "^5.0.0",
33
33
  "@types/jest": "^29.5.2",
34
- "@types/node": "^18.0.6",
34
+ "@types/node": "^18.17.5",
35
35
  "@types/redis": "^4.0.11",
36
+ "@types/validator": "^13.11.1",
36
37
  "@typescript-eslint/eslint-plugin": "^5.33.0",
37
38
  "dotenv": "^16.1.4",
38
39
  "eslint": "^8.40.0",
@@ -57,7 +58,7 @@
57
58
  },
58
59
  "peerDependencies": {
59
60
  "@prisma/client": "^4.14.1",
60
- "@tomei/general": "^0.1.0",
61
+ "@tomei/general": "^0.3.0",
61
62
  "@types/jest": "^29.5.2",
62
63
  "argon2": "^0.30.3",
63
64
  "cls-hooked": "^4.2.2",
@@ -72,6 +73,9 @@
72
73
  ]
73
74
  },
74
75
  "dependencies": {
75
- "@tomei/mailer": "^0.1.3"
76
+ "@tomei/mailer": "^0.1.3",
77
+ "reflect-metadata": "^0.1.13",
78
+ "sequelize": "^6.32.1",
79
+ "sequelize-typescript": "^2.1.5"
76
80
  }
77
81
  }
@@ -5,3 +5,4 @@ export * from './system';
5
5
  export * from './system-access';
6
6
  export * from './user-group';
7
7
  export * from './user-user-group';
8
+ //test ci
@@ -1,33 +1,45 @@
1
+ import LoginHistory from '../../models/login-history.entity';
1
2
  import prisma from '../../prisma-client/client';
2
3
 
3
- export class LoginHistoryRepository {
4
- private _prisma: any;
4
+ // export class LoginHistoryRepository {
5
+ // private _prisma: any;
5
6
 
6
- constructor(client?: any) {
7
- if (client) {
8
- this._prisma = client;
9
- } else {
10
- this._prisma = prisma;
11
- }
12
- }
7
+ // constructor(client?: any) {
8
+ // if (client) {
9
+ // this._prisma = client;
10
+ // } else {
11
+ // this._prisma = prisma;
12
+ // }
13
+ // }
13
14
 
14
- public async create(data: any): Promise<any> {
15
- return await this._prisma.loginHistory.create(data);
16
- }
15
+ // public async create(data: any): Promise<any> {
16
+ // return await this._prisma.loginHistory.create(data);
17
+ // }
17
18
 
18
- public async findAll(options: any): Promise<any[]> {
19
- return await this._prisma.loginHistory.findMany(options);
20
- }
19
+ // public async findAll(options: any): Promise<any[]> {
20
+ // return await this._prisma.loginHistory.findMany(options);
21
+ // }
21
22
 
22
- public async findOne(options: any): Promise<any> {
23
- return await this._prisma.loginHistory.findFirst(options);
24
- }
23
+ // public async findOne(options: any): Promise<any> {
24
+ // return await this._prisma.loginHistory.findFirst(options);
25
+ // }
25
26
 
26
- public async update(where: any, data: any): Promise<any> {
27
- return await this._prisma.loginHistory.update(where, data);
28
- }
27
+ // public async update(where: any, data: any): Promise<any> {
28
+ // return await this._prisma.loginHistory.update(where, data);
29
+ // }
30
+
31
+ // public async delete(where: any): Promise<any> {
32
+ // return await this._prisma.loginHistory.delete(where);
33
+ // }
34
+ // }
35
+
36
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
29
37
 
30
- public async delete(where: any): Promise<any> {
31
- return await this._prisma.loginHistory.delete(where);
38
+ export class LoginHistoryRepository
39
+ extends RepositoryBase<LoginHistory>
40
+ implements IRepositoryBase<LoginHistory>
41
+ {
42
+ constructor() {
43
+ super(LoginHistory);
32
44
  }
33
45
  }
@@ -13,6 +13,13 @@ import { UserGroupRepository } from '../user-group/user-group.repository';
13
13
  import * as nodemailer from 'nodemailer';
14
14
  import { Mailer } from '@tomei/mailer';
15
15
  import { ISystemLogin } from '../../../src/interfaces/system-login.interface';
16
+ import Staff from 'models/staff.entity';
17
+ import SystemPrivilege from 'models/system-privilege.entity';
18
+ import LoginHistory from 'models/login-history.entity';
19
+ import GroupSystemPrivilege from 'models/group-system-privilege.entity';
20
+ import GroupRolePrivilege from 'models/group-role-privilege.entity';
21
+ import UserGroup from 'models/user-group.entity';
22
+ import UserSystemPrivileges from 'models/user-system-privileges.entity';
16
23
  export class LoginUser extends ObjectBase implements IPerson {
17
24
  FullName: string;
18
25
  IDNo: string;
@@ -35,6 +42,7 @@ export class LoginUser extends ObjectBase implements IPerson {
35
42
  private static _LoginHistoryRepository = new LoginHistoryRepository();
36
43
  private static _UserUserGroupRepository = new UserUserGroupRepository();
37
44
  private static _UserGroupRepository = new UserGroupRepository();
45
+ private _dbTransaction: any;
38
46
 
39
47
  getDetails(): {
40
48
  FullName: string;
@@ -63,18 +71,7 @@ export class LoginUser extends ObjectBase implements IPerson {
63
71
  // this._MailService = new MailService();
64
72
 
65
73
  if (dbTransaction) {
66
- LoginUser._Repository = new UserRepository(dbTransaction);
67
- LoginUser._SystemRepository = new SystemRepository(dbTransaction);
68
- LoginUser._SystemAccessRepository = new SystemAccessRepository(
69
- dbTransaction,
70
- );
71
- LoginUser._LoginHistoryRepository = new LoginHistoryRepository(
72
- dbTransaction,
73
- );
74
- LoginUser._UserUserGroupRepository = new UserUserGroupRepository(
75
- dbTransaction,
76
- );
77
- LoginUser._UserGroupRepository = new UserGroupRepository(dbTransaction);
74
+ this._dbTransaction = dbTransaction;
78
75
  }
79
76
  // set all the class properties
80
77
  if (userInfo) {
@@ -93,31 +90,34 @@ export class LoginUser extends ObjectBase implements IPerson {
93
90
 
94
91
  if (userId) {
95
92
  if (dbTransaction) {
96
- LoginUser._Repository = new UserRepository(dbTransaction);
93
+ LoginUser._Repository = new UserRepository();
97
94
  }
98
95
  const user = await LoginUser._Repository.findOne({
99
96
  where: {
100
97
  id: Number(userId),
101
98
  },
102
- include: {
103
- staffs: true,
104
- userSystemPrivileges: {
105
- include: {
106
- systemPrivilege: true,
99
+ include: [
100
+ {
101
+ model: Staff,
102
+ },
103
+ {
104
+ model: SystemPrivilege,
105
+ Include: {
106
+ model: SystemPrivilege,
107
107
  },
108
108
  },
109
- },
109
+ ],
110
110
  });
111
111
 
112
112
  if (user) {
113
113
  const userInfo: IUserInfo = {
114
- ObjectId: user.id,
115
- FullName: user.staffs[0].name,
116
- IDNo: user.staffs[0].idNo,
117
- ContactNo: user.staffs[0].contactNo,
118
- Email: user.staffs[0].email,
119
- Password: user.password,
120
- staffs: user.staffs[0],
114
+ ObjectId: user.id.toString(),
115
+ FullName: user.Staff[0].name,
116
+ IDNo: user.Staff[0].idNo,
117
+ ContactNo: user.Staff[0].contactNo,
118
+ Email: user.Staff[0].email,
119
+ Password: user.Password,
120
+ staffs: user.Staff[0],
121
121
  };
122
122
 
123
123
  return new LoginUser(sessionService, dbTransaction, userInfo);
@@ -164,7 +164,7 @@ export class LoginUser extends ObjectBase implements IPerson {
164
164
  //validate system access
165
165
  await this.checkSystemAccess(this.ObjectId, system.id);
166
166
  // alert user if new login
167
- await this.alertNewLogin(this.ObjectId, system.id, ipAddress);
167
+ await this.alertNewLogin(this.ObjectId, system.id.toString(), ipAddress);
168
168
 
169
169
  // fetch user session if exists
170
170
  const userSession = await this._SessionService.retrieveUserSession(
@@ -187,9 +187,9 @@ export class LoginUser extends ObjectBase implements IPerson {
187
187
  // if not, add new system login into the userSession
188
188
  const newLogin = {
189
189
  id: system.id.toString(),
190
- code: system.code,
190
+ code: system.Code,
191
191
  sessionId: sessionId,
192
- privileges: await this.getPrivileges(system.code),
192
+ privileges: await this.getPrivileges(system.Code),
193
193
  };
194
194
  userSession.systemLogins.push(newLogin);
195
195
  }
@@ -242,9 +242,9 @@ export class LoginUser extends ObjectBase implements IPerson {
242
242
  });
243
243
 
244
244
  const gotPreviousLogins = userLogins?.length !== 0;
245
- let ipFound = null;
245
+ let ipFound: LoginHistory | undefined = undefined;
246
246
  if (gotPreviousLogins) {
247
- ipFound = userLogins.find((item) => item.ipAddress === ipAddress);
247
+ ipFound = userLogins.find((item) => item.OriginIp === ipAddress);
248
248
  }
249
249
 
250
250
  if (gotPreviousLogins && !ipFound) {
@@ -299,25 +299,25 @@ export class LoginUser extends ObjectBase implements IPerson {
299
299
  const userUserGroups = await this.getUserUserGroupFromDB(system.id);
300
300
 
301
301
  // get all userGroup data from user userGroups
302
- const userGroupData = userUserGroups.map((u) => u.userGroup);
302
+ const userGroupData = userUserGroups.map((u) => u.UserGroup);
303
303
  // get all privileges from userGroup data
304
304
  let privileges: string[] = [];
305
305
  for (const userGroup of userGroupData) {
306
- const groupSystemPrivileges = userGroup.groupSystemPrivileges.map(
307
- (g) => g.systemPrivilege.code,
306
+ const groupSystemPrivileges = userGroup.GroupSystemPrivileges.map(
307
+ (g) => g.SystemPrivilege.Code,
308
308
  );
309
- const groupRolePrivileges = userGroup.groupRolePrivileges.map(
310
- (g) => g.systemPrivilege.code,
309
+ const groupRolePrivileges = userGroup.GroupRolePrivileges.map(
310
+ (g) => g.SystemPrivilege.Code,
311
311
  );
312
312
 
313
313
  // if userGroup is not root, get all parent tree privileges
314
314
  if (
315
- userGroup.groupLevel !== 0 &&
316
- userGroup.allowInheritFromParentYN === 'Y'
315
+ userGroup.GroupLevel !== 0 &&
316
+ userGroup.AllowInheritFromParentYN === 'Y'
317
317
  ) {
318
318
  // get all parent tree privileges
319
319
  const parentTreePrivileges = await this.getPrivilegesFromUserGroup(
320
- userGroup.parentGroupCode,
320
+ userGroup.ParentGroupCode,
321
321
  );
322
322
 
323
323
  privileges = [...privileges, ...parentTreePrivileges];
@@ -380,18 +380,20 @@ export class LoginUser extends ObjectBase implements IPerson {
380
380
  where: {
381
381
  groupCode: groupCode,
382
382
  },
383
- include: {
384
- groupSystemPrivileges: {
383
+ include: [
384
+ {
385
+ model: GroupSystemPrivilege,
385
386
  include: {
386
- systemPrivilege: true,
387
+ model: SystemPrivilege,
387
388
  },
388
389
  },
389
- groupRolePrivileges: {
390
+ {
391
+ model: GroupRolePrivilege,
390
392
  include: {
391
- systemPrivilege: true,
393
+ model: SystemPrivilege,
392
394
  },
393
395
  },
394
- },
396
+ ],
395
397
  });
396
398
  return userGroup;
397
399
  } catch (error) {
@@ -407,20 +409,21 @@ export class LoginUser extends ObjectBase implements IPerson {
407
409
  systemId: systemCode,
408
410
  },
409
411
  include: {
410
- userGroup: {
411
- include: {
412
- groupSystemPrivileges: {
413
- include: {
414
- systemPrivilege: true,
415
- },
412
+ model: UserGroup,
413
+ include: [
414
+ {
415
+ model: GroupSystemPrivilege,
416
+ include: {
417
+ model: SystemPrivilege,
416
418
  },
417
- groupRolePrivileges: {
418
- include: {
419
- systemPrivilege: true,
420
- },
419
+ },
420
+ {
421
+ model: GroupRolePrivilege,
422
+ include: {
423
+ model: SystemPrivilege,
421
424
  },
422
425
  },
423
- },
426
+ ],
424
427
  },
425
428
  });
426
429
  } catch (error) {
@@ -435,24 +438,21 @@ export class LoginUser extends ObjectBase implements IPerson {
435
438
  id: this.ObjectId,
436
439
  },
437
440
  include: {
438
- userSystemPrivileges: {
439
- include: {
440
- systemPrivilege: true,
441
- },
441
+ model: UserSystemPrivileges,
442
+ include: {
443
+ model: SystemPrivilege,
442
444
  },
443
445
  },
444
446
  });
445
447
 
446
448
  //retrive all user systemPrevileges data from user roles
447
- let userSystemPrivileges = userRole.userSystemPrivileges.map(
448
- (u) => u.systemPrivilege,
449
- );
449
+ let userSystemPrivileges = userRole.SystemPrivileges;
450
450
 
451
451
  userSystemPrivileges = userSystemPrivileges.filter(
452
- (u) => u.systemId === systemId,
452
+ (u) => u.SystemId === systemId,
453
453
  );
454
454
 
455
- const userPrivileges: string[] = userSystemPrivileges.map((u) => u.code);
455
+ const userPrivileges: string[] = userSystemPrivileges.map((u) => u.Code);
456
456
  return userPrivileges;
457
457
  } catch (error) {
458
458
  throw error;
@@ -1,33 +1,45 @@
1
+ import User from '../../models/user.entity';
1
2
  import prisma from '../../prisma-client/client';
2
3
 
3
- export class UserRepository {
4
- private _prisma: any;
4
+ // export class UserRepository {
5
+ // private _prisma: any;
5
6
 
6
- constructor(client?: any) {
7
- if (client) {
8
- this._prisma = client;
9
- } else {
10
- this._prisma = prisma;
11
- }
12
- }
7
+ // constructor(client?: any) {
8
+ // if (client) {
9
+ // this._prisma = client;
10
+ // } else {
11
+ // this._prisma = prisma;
12
+ // }
13
+ // }
13
14
 
14
- public async create(data: any): Promise<any> {
15
- return await this._prisma.user.create(data);
16
- }
15
+ // public async create(data: any): Promise<any> {
16
+ // return await this._prisma.user.create(data);
17
+ // }
17
18
 
18
- public async findAll(options: any): Promise<any[]> {
19
- return await this._prisma.user.findMany(options);
20
- }
19
+ // public async findAll(options: any): Promise<any[]> {
20
+ // return await this._prisma.user.findMany(options);
21
+ // }
21
22
 
22
- public async findOne(options: any): Promise<any> {
23
- return await this._prisma.user.findFirst(options);
24
- }
23
+ // public async findOne(options: any): Promise<any> {
24
+ // return await this._prisma.user.findFirst(options);
25
+ // }
25
26
 
26
- public async update(where: any, data: any): Promise<any> {
27
- return await this._prisma.user.update(where, data);
28
- }
27
+ // public async update(where: any, data: any): Promise<any> {
28
+ // return await this._prisma.user.update(where, data);
29
+ // }
30
+
31
+ // public async delete(where: any): Promise<any> {
32
+ // return await this._prisma.user.delete(where);
33
+ // }
34
+ // }
35
+
36
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
29
37
 
30
- public async delete(where: any): Promise<any> {
31
- return await this._prisma.user.delete(where);
38
+ export class UserRepository
39
+ extends RepositoryBase<User>
40
+ implements IRepositoryBase<User>
41
+ {
42
+ constructor() {
43
+ super(User);
32
44
  }
33
45
  }