@tomei/sso 0.8.1 → 0.8.4

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 (198) hide show
  1. package/Jenkinsfile +7 -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 +39 -0
  60. package/dist/src/models/building.entity.js +251 -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/login-history/login-history.repository.ts +9 -31
  145. package/src/components/login-user/login-user.ts +65 -65
  146. package/src/components/login-user/user.repository.ts +9 -31
  147. package/src/components/system/system.repository.ts +9 -31
  148. package/src/components/system-access/system-access.repository.ts +9 -31
  149. package/src/components/user-group/user-group.repository.ts +9 -31
  150. package/src/components/user-user-group/user-user-group.repository.ts +9 -31
  151. package/src/database.ts +15 -0
  152. package/src/models/authorization-code.entity.ts +71 -0
  153. package/src/models/bearer-token.entity.ts +59 -0
  154. package/src/models/building-type.entity.ts +38 -0
  155. package/src/models/building.entity.ts +215 -0
  156. package/src/models/city.entity.ts +59 -0
  157. package/src/models/company.entity.ts +96 -0
  158. package/src/models/country.entity.ts +75 -0
  159. package/src/models/department.entity.ts +94 -0
  160. package/src/models/group-role-privilege.entity.ts +73 -0
  161. package/src/models/group-system-access.entity.ts +49 -0
  162. package/src/models/group-system-privilege.entity.ts +49 -0
  163. package/src/models/group-system-role.entity.ts +49 -0
  164. package/src/models/login-history.entity.ts +56 -0
  165. package/src/models/oauth-token.entity.ts +71 -0
  166. package/src/models/role.entity.ts +85 -0
  167. package/src/models/staff-type.entity.ts +38 -0
  168. package/src/models/staff.entity.ts +213 -0
  169. package/src/models/state.entity.ts +52 -0
  170. package/src/models/system-accesss.entity.ts +40 -0
  171. package/src/models/system-privilege.entity.ts +75 -0
  172. package/src/models/system-role-privilege.entity.ts +48 -0
  173. package/src/models/system-role.entity.ts +68 -0
  174. package/src/models/system.entity.ts +122 -0
  175. package/src/models/user-group.entity.ts +118 -0
  176. package/src/models/user-role.entity.ts +50 -0
  177. package/src/models/user-system-privileges.entity.ts +66 -0
  178. package/src/models/user-system-role.entity.ts +48 -0
  179. package/src/models/user-user-group.entity.ts +59 -0
  180. package/src/models/user.entity.ts +110 -0
  181. package/dist/src/mail/index.d.ts +0 -2
  182. package/dist/src/mail/index.js +0 -19
  183. package/dist/src/mail/index.js.map +0 -1
  184. package/dist/src/mail/interfaces/index.d.ts +0 -2
  185. package/dist/src/mail/interfaces/index.js +0 -19
  186. package/dist/src/mail/interfaces/index.js.map +0 -1
  187. package/dist/src/mail/interfaces/send-mail.interface.d.ts +0 -8
  188. package/dist/src/mail/interfaces/send-mail.interface.js +0 -3
  189. package/dist/src/mail/interfaces/send-mail.interface.js.map +0 -1
  190. package/dist/src/mail/interfaces/send-new-login-alert.interface.d.ts +0 -6
  191. package/dist/src/mail/interfaces/send-new-login-alert.interface.js +0 -3
  192. package/dist/src/mail/interfaces/send-new-login-alert.interface.js.map +0 -1
  193. package/dist/src/mail/mail.d.ts +0 -7
  194. package/dist/src/mail/mail.js +0 -49
  195. package/dist/src/mail/mail.js.map +0 -1
  196. package/dist/src/mail/mail.service.d.ts +0 -7
  197. package/dist/src/mail/mail.service.js +0 -42
  198. package/dist/src/mail/mail.service.js.map +0 -1
@@ -0,0 +1,118 @@
1
+ import {
2
+ BelongsTo,
3
+ Column,
4
+ CreatedAt,
5
+ DataType,
6
+ ForeignKey,
7
+ HasMany,
8
+ Model,
9
+ Table,
10
+ UpdatedAt,
11
+ } from 'sequelize-typescript';
12
+ import Department from './department.entity';
13
+ import GroupRolePrivilege from './group-role-privilege.entity';
14
+ import GroupSystemPrivilege from './group-system-privilege.entity';
15
+
16
+ @Table({
17
+ tableName: 'sso_UserGroup',
18
+ timestamps: true,
19
+ createdAt: 'CreatedAt',
20
+ updatedAt: 'UpdatedAt',
21
+ })
22
+ export default class UserGroup extends Model {
23
+ @Column({
24
+ primaryKey: true,
25
+ type: DataType.STRING(10),
26
+ allowNull: false,
27
+ })
28
+ GroupCode: string;
29
+
30
+ @Column({
31
+ type: DataType.STRING(100),
32
+ field: 'GroupDescription',
33
+ })
34
+ GroupDescription: string;
35
+
36
+ @ForeignKey(() => Department)
37
+ @Column({
38
+ type: DataType.STRING,
39
+ field: 'password',
40
+ })
41
+ DepartmentId: string;
42
+
43
+ @Column({
44
+ type: DataType.STRING,
45
+ field: 'status',
46
+ })
47
+ Status: string;
48
+
49
+ @Column({
50
+ type: DataType.ENUM('Y', 'N'),
51
+ field: 'AllowInheritFromParentYN',
52
+ defaultValue: 'N',
53
+ })
54
+ AllowInheritFromParentYN: string;
55
+
56
+ @Column({
57
+ type: DataType.STRING(1000),
58
+ field: 'FullPath',
59
+ allowNull: true,
60
+ })
61
+ FullPath: string;
62
+
63
+ @Column({
64
+ type: DataType.INTEGER,
65
+ field: 'GroupLevel',
66
+ defaultValue: 0,
67
+ allowNull: false,
68
+ })
69
+ GroupLevel: number;
70
+
71
+ @Column({
72
+ type: DataType.STRING(10),
73
+ field: 'GroupType',
74
+ allowNull: true,
75
+ })
76
+ GroupType: string;
77
+
78
+ @Column({
79
+ type: DataType.STRING(10),
80
+ field: 'ParentGroupCode',
81
+ allowNull: true,
82
+ })
83
+ ParentGroupCode: string;
84
+
85
+ @Column({
86
+ type: DataType.STRING(100),
87
+ field: 'PersonInCharge',
88
+ allowNull: true,
89
+ })
90
+ PersonInCharge: string;
91
+
92
+ @Column({
93
+ type: DataType.STRING(10),
94
+ field: 'status',
95
+ })
96
+ CreatedById: string;
97
+
98
+ @Column({
99
+ type: DataType.STRING(10),
100
+ field: 'status',
101
+ })
102
+ UpdatedById: string;
103
+
104
+ @CreatedAt
105
+ CreatedAt: Date;
106
+
107
+ @UpdatedAt
108
+ UpdatedAt: Date;
109
+
110
+ @BelongsTo(() => Department)
111
+ Department: Department;
112
+
113
+ @HasMany(() => GroupRolePrivilege)
114
+ GroupRolePrivileges: GroupRolePrivilege[];
115
+
116
+ @HasMany(() => GroupSystemPrivilege)
117
+ GroupSystemPrivileges: GroupSystemPrivilege[];
118
+ }
@@ -0,0 +1,50 @@
1
+ import {
2
+ BelongsTo,
3
+ Column,
4
+ DataType,
5
+ ForeignKey,
6
+ Model,
7
+ Table,
8
+ UpdatedAt,
9
+ } from 'sequelize-typescript';
10
+ import User from './user.entity';
11
+
12
+ @Table({
13
+ tableName: 'sso_user_roles',
14
+ timestamps: true,
15
+ createdAt: false,
16
+ updatedAt: 'updated_at',
17
+ underscored: true,
18
+ })
19
+ export default class UserRole extends Model {
20
+ @Column({
21
+ primaryKey: true,
22
+ type: DataType.INTEGER,
23
+ allowNull: false,
24
+ field: 'user_id',
25
+ })
26
+ UserId: number;
27
+
28
+ @Column({
29
+ primaryKey: true,
30
+ type: DataType.INTEGER,
31
+ allowNull: false,
32
+ field: 'role_id',
33
+ })
34
+ RoleId: number;
35
+
36
+ @ForeignKey(() => User)
37
+ @Column({
38
+ primaryKey: true,
39
+ type: DataType.INTEGER,
40
+ allowNull: false,
41
+ field: 'updated_by_id',
42
+ })
43
+ UpdatedById: number;
44
+
45
+ @UpdatedAt
46
+ UpdatedAt: Date;
47
+
48
+ @BelongsTo(() => User)
49
+ User: User;
50
+ }
@@ -0,0 +1,66 @@
1
+ import {
2
+ BelongsTo,
3
+ Column,
4
+ CreatedAt,
5
+ DataType,
6
+ ForeignKey,
7
+ Model,
8
+ Table,
9
+ UpdatedAt,
10
+ } from 'sequelize-typescript';
11
+ import SystemPrivilege from './system-privilege.entity';
12
+ import User from './user.entity';
13
+
14
+ @Table({
15
+ tableName: 'sso_UserSystemPrivilege',
16
+ timestamps: true,
17
+ createdAt: 'CreatedAt',
18
+ updatedAt: 'UpdatedAt',
19
+ underscored: true,
20
+ })
21
+ export default class UserSystemPrivileges extends Model {
22
+ @ForeignKey(() => User)
23
+ @Column({
24
+ primaryKey: true,
25
+ allowNull: false,
26
+ type: DataType.INTEGER,
27
+ })
28
+ UserId: number;
29
+
30
+ @ForeignKey(() => SystemPrivilege)
31
+ @Column({
32
+ allowNull: false,
33
+ primaryKey: true,
34
+ type: DataType.STRING(30),
35
+ field: 'PrivilegeId',
36
+ })
37
+ PrivilegeId: string;
38
+
39
+ @Column({
40
+ allowNull: false,
41
+ type: DataType.ENUM('Y', 'N'),
42
+ field: 'IsInheritedYN',
43
+ defaultValue: 'N',
44
+ })
45
+ IsInheritedYN: string;
46
+
47
+ @Column({
48
+ allowNull: false,
49
+ type: DataType.ENUM('Y', 'N'),
50
+ field: 'IsRevokedYN',
51
+ defaultValue: 'N',
52
+ })
53
+ IsRevokedYN: string;
54
+
55
+ @CreatedAt
56
+ CreatedAt: Date;
57
+
58
+ @UpdatedAt
59
+ UpdatedAt: Date;
60
+
61
+ @BelongsTo(() => User)
62
+ User: User;
63
+
64
+ @BelongsTo(() => SystemPrivilege)
65
+ SystemPrivilege: SystemPrivilege;
66
+ }
@@ -0,0 +1,48 @@
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 SystemRole from './system-role.entity';
13
+
14
+ @Table({
15
+ tableName: 'sso_UserSystemRole',
16
+ timestamps: true,
17
+ createdAt: 'CreatedAt',
18
+ updatedAt: 'UpdatedAt',
19
+ })
20
+ export default class UserSystemRole extends Model {
21
+ @ForeignKey(() => User)
22
+ @Column({
23
+ primaryKey: true,
24
+ allowNull: false,
25
+ type: DataType.INTEGER,
26
+ })
27
+ UserId: number;
28
+
29
+ @ForeignKey(() => SystemRole)
30
+ @Column({
31
+ allowNull: false,
32
+ primaryKey: true,
33
+ type: DataType.STRING(30),
34
+ })
35
+ RoleId: string;
36
+
37
+ @CreatedAt
38
+ CreatedAt: Date;
39
+
40
+ @UpdatedAt
41
+ UpdatedAt: Date;
42
+
43
+ @BelongsTo(() => User)
44
+ User: User;
45
+
46
+ @BelongsTo(() => SystemRole)
47
+ SystemRole: SystemRole;
48
+ }
@@ -0,0 +1,59 @@
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 UserGroup from './user-group.entity';
13
+ import System from './system.entity';
14
+
15
+ @Table({
16
+ tableName: 'sso_UserUserGroup',
17
+ timestamps: true,
18
+ createdAt: 'CreatedAt',
19
+ updatedAt: 'UpdatedAt',
20
+ })
21
+ export default class UserUserGroup extends Model {
22
+ @ForeignKey(() => User)
23
+ @Column({
24
+ primaryKey: true,
25
+ allowNull: false,
26
+ type: DataType.INTEGER,
27
+ })
28
+ UserId: number;
29
+
30
+ @ForeignKey(() => UserGroup)
31
+ @Column({
32
+ allowNull: false,
33
+ primaryKey: true,
34
+ type: DataType.STRING(191),
35
+ })
36
+ GroupCode: string;
37
+
38
+ @ForeignKey(() => System)
39
+ @Column({
40
+ allowNull: true,
41
+ type: DataType.INTEGER,
42
+ })
43
+ SystemId: number;
44
+
45
+ @CreatedAt
46
+ CreatedAt: Date;
47
+
48
+ @UpdatedAt
49
+ UpdatedAt: Date;
50
+
51
+ @BelongsTo(() => User)
52
+ User: User;
53
+
54
+ @BelongsTo(() => UserGroup)
55
+ UserGroup: UserGroup;
56
+
57
+ @BelongsTo(() => System)
58
+ System: System;
59
+ }
@@ -0,0 +1,110 @@
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 UserGroup from './user-group.entity';
15
+ import Staff from './staff.entity';
16
+ import BearerToken from './bearer-token.entity';
17
+ import OAuthToken from './oauth-token.entity';
18
+ import UserRole from './user-role.entity';
19
+ import System from './system.entity';
20
+ import SystemAccess from './system-accesss.entity';
21
+ import Role from './role.entity';
22
+ import SystemRole from './system-role.entity';
23
+ import UserSystemRole from './user-system-role.entity';
24
+ import SystemPrivilege from './system-privilege.entity';
25
+ import UserSystemPrivileges from './user-system-privileges.entity';
26
+
27
+ @Table({
28
+ tableName: 'sso_users',
29
+ timestamps: true,
30
+ createdAt: 'created_at',
31
+ updatedAt: 'updated_at',
32
+ })
33
+ export default class User extends Model {
34
+ @Column({
35
+ primaryKey: true,
36
+ type: DataType.INTEGER,
37
+ })
38
+ id: number;
39
+
40
+ @Column({
41
+ type: DataType.STRING,
42
+ field: 'email',
43
+ })
44
+ Email: string;
45
+
46
+ @Column({
47
+ type: DataType.STRING,
48
+ field: 'password',
49
+ })
50
+ Password: string;
51
+
52
+ @Column({
53
+ type: DataType.STRING,
54
+ field: 'status',
55
+ })
56
+ Status: string;
57
+
58
+ @Column({
59
+ type: DataType.BOOLEAN,
60
+ field: 'default_password_changed',
61
+ })
62
+ DefaultPasswordChanged: boolean;
63
+
64
+ @Column({
65
+ type: DataType.DATE,
66
+ field: 'first_login_at',
67
+ })
68
+ FirstLoginAt: boolean;
69
+
70
+ @ForeignKey(() => UserGroup)
71
+ @Column({
72
+ allowNull: true,
73
+ type: DataType.STRING(10),
74
+ field: 'GroupCode',
75
+ })
76
+ GroupCode: boolean;
77
+
78
+ @CreatedAt
79
+ CreatedAt: Date;
80
+
81
+ @UpdatedAt
82
+ UpdatedAt: Date;
83
+
84
+ @HasOne(() => Staff)
85
+ Staff: Staff;
86
+
87
+ @HasMany(() => BearerToken)
88
+ BearerTokens: BearerToken[];
89
+
90
+ @HasMany(() => OAuthToken)
91
+ OAuthTokens: OAuthToken[];
92
+
93
+ @HasMany(() => UserRole)
94
+ UserRoles: UserRole[];
95
+
96
+ @BelongsToMany(() => System, () => SystemAccess)
97
+ Systems: System[];
98
+
99
+ @BelongsToMany(() => Role, () => UserRole)
100
+ Roles: Role[];
101
+
102
+ @BelongsToMany(() => SystemRole, () => UserSystemRole)
103
+ SystemRoles: SystemRole[];
104
+
105
+ @BelongsToMany(() => SystemPrivilege, () => UserSystemPrivileges)
106
+ SystemPrivileges: SystemPrivilege[];
107
+
108
+ @BelongsTo(() => UserGroup)
109
+ UserGroup: UserGroup;
110
+ }
@@ -1,2 +0,0 @@
1
- export * from './mail.service';
2
- export * from './mail';
@@ -1,19 +0,0 @@
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("./mail.service"), exports);
18
- __exportStar(require("./mail"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mail/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,yCAAuB"}
@@ -1,2 +0,0 @@
1
- export * from './send-mail.interface';
2
- export * from './send-new-login-alert.interface';
@@ -1,19 +0,0 @@
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("./send-mail.interface"), exports);
18
- __exportStar(require("./send-new-login-alert.interface"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mail/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,mEAAiD"}
@@ -1,8 +0,0 @@
1
- export interface ISendMailOptionsInterface {
2
- to: string | string[];
3
- cc?: string | string[];
4
- bcc?: string | string[];
5
- subject: string;
6
- text?: string;
7
- html: string;
8
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=send-mail.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-mail.interface.js","sourceRoot":"","sources":["../../../../src/mail/interfaces/send-mail.interface.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- export interface ISendNewLoginAlertOptions {
2
- IpAddress: string;
3
- Email: string;
4
- Name: string;
5
- LoginDate: Date;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=send-new-login-alert.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-new-login-alert.interface.js","sourceRoot":"","sources":["../../../../src/mail/interfaces/send-new-login-alert.interface.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import { ISendMailOptionsInterface } from './interfaces/send-mail.interface';
2
- export default class Mail {
3
- private static transporter;
4
- constructor();
5
- static init(): Mail;
6
- sendMail(options: ISendMailOptionsInterface): Promise<void>;
7
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const nodemailer = require("nodemailer");
13
- class Mail {
14
- constructor() { }
15
- static init() {
16
- if (!Mail.transporter) {
17
- Mail.transporter = nodemailer.createTransport({
18
- host: process.env.SMTP_HOST,
19
- port: Number(process.env.SMTP_PORT),
20
- secure: Number(process.env.SMTP_PORT) === 465,
21
- auth: {
22
- user: process.env.EMAIL_SENDER,
23
- pass: process.env.EMAIL_PASSWORD,
24
- },
25
- });
26
- }
27
- return new Mail();
28
- }
29
- sendMail(options) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- try {
32
- yield Mail.transporter.sendMail({
33
- from: process.env.EMAIL_SENDER,
34
- to: options.to,
35
- cc: options.cc,
36
- bcc: options.bcc,
37
- subject: options.subject,
38
- text: options.text,
39
- html: options.html,
40
- });
41
- }
42
- catch (error) {
43
- throw error;
44
- }
45
- });
46
- }
47
- }
48
- exports.default = Mail;
49
- //# sourceMappingURL=mail.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../../src/mail/mail.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,yCAAyC;AAGzC,MAAqB,IAAI;IAGvB,gBAAe,CAAC;IAEhB,MAAM,CAAC,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;gBAC5C,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;gBAC3B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;gBAC7C,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;oBAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;iBACjC;aACF,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAGK,QAAQ,CAAC,OAAkC;;YAC/C,IAAI;gBACF,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;oBAC9B,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;CACF;AApCD,uBAoCC"}
@@ -1,7 +0,0 @@
1
- import { ISendNewLoginAlertOptions } from './interfaces/send-new-login-alert.interface';
2
- import Mail from './mail';
3
- export declare class MailService {
4
- MailClient: Mail;
5
- constructor();
6
- sendNewLoginAlertEmail(options: ISendNewLoginAlertOptions): Promise<void>;
7
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MailService = void 0;
13
- const mail_1 = require("./mail");
14
- class MailService {
15
- constructor() {
16
- this.MailClient = mail_1.default.init();
17
- }
18
- sendNewLoginAlertEmail(options) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- try {
21
- yield this.MailClient.sendMail({
22
- to: options.Email,
23
- subject: 'New Login Alert',
24
- html: `<p>Dear ${options.Name},</p>
25
- <p>There was a new login to your account from ${options.IpAddress} on ${options.LoginDate.toLocaleString()}.</p>
26
- <p>If this was you, you can safely ignore this email.</p>
27
- <p>If you suspect that someone else is trying to access your account, please contact us immediately at itd-support@tomei.com.my.</p>
28
- <p>Thank you!,</p>
29
- <p>
30
- Best Regards,
31
- IT Department
32
- </p>`,
33
- });
34
- }
35
- catch (error) {
36
- throw error;
37
- }
38
- });
39
- }
40
- }
41
- exports.MailService = MailService;
42
- //# sourceMappingURL=mail.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../../src/mail/mail.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iCAA0B;AAE1B,MAAa,WAAW;IAEtB;QACE,IAAI,CAAC,UAAU,GAAG,cAAI,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAEY,sBAAsB,CACjC,OAAkC;;YAElC,IAAI;gBACF,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC7B,EAAE,EAAE,OAAO,CAAC,KAAK;oBACjB,OAAO,EAAE,iBAAiB;oBAC1B,IAAI,EAAE,WAAW,OAAO,CAAC,IAAI;gEAEnB,OAAO,CAAC,SACV,OAAO,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE;;;;;;;qBAOpC;iBACd,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;CACF;AA7BD,kCA6BC"}