@acorex-platform/module-security-management-server 0.0.15

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 (139) hide show
  1. package/contracts/src/AXM_USER_ACCESS_STATE_DEFINITION_KEY.d.ts +2 -0
  2. package/contracts/src/AXM_USER_ACCESS_STATE_DEFINITION_KEY.js +6 -0
  3. package/contracts/src/AXM_USER_ACCESS_STATE_DEFINITION_KEY.js.map +1 -0
  4. package/contracts/src/AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY.d.ts +2 -0
  5. package/contracts/src/AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY.js +6 -0
  6. package/contracts/src/AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY.js.map +1 -0
  7. package/contracts/src/datasource.keys.d.ts +4 -0
  8. package/contracts/src/datasource.keys.js +10 -0
  9. package/contracts/src/datasource.keys.js.map +1 -0
  10. package/contracts/src/entities/device-sessions/device-sessions.entity.d.ts +2 -0
  11. package/contracts/src/entities/device-sessions/device-sessions.entity.js +479 -0
  12. package/contracts/src/entities/device-sessions/device-sessions.entity.js.map +1 -0
  13. package/contracts/src/entities/device-sessions/device-sessions.types.d.ts +34 -0
  14. package/contracts/src/entities/device-sessions/device-sessions.types.js +10 -0
  15. package/contracts/src/entities/device-sessions/device-sessions.types.js.map +1 -0
  16. package/contracts/src/entities/device-sessions/index.d.ts +2 -0
  17. package/contracts/src/entities/device-sessions/index.js +6 -0
  18. package/contracts/src/entities/device-sessions/index.js.map +1 -0
  19. package/contracts/src/entities/index.d.ts +5 -0
  20. package/contracts/src/entities/index.js +9 -0
  21. package/contracts/src/entities/index.js.map +1 -0
  22. package/contracts/src/entities/policy/index.d.ts +2 -0
  23. package/contracts/src/entities/policy/index.js +6 -0
  24. package/contracts/src/entities/policy/index.js.map +1 -0
  25. package/contracts/src/entities/policy/policy.entity.d.ts +2 -0
  26. package/contracts/src/entities/policy/policy.entity.js +211 -0
  27. package/contracts/src/entities/policy/policy.entity.js.map +1 -0
  28. package/contracts/src/entities/policy/policy.types.d.ts +23 -0
  29. package/contracts/src/entities/policy/policy.types.js +43 -0
  30. package/contracts/src/entities/policy/policy.types.js.map +1 -0
  31. package/contracts/src/entities/profile/index.d.ts +2 -0
  32. package/contracts/src/entities/profile/index.js +6 -0
  33. package/contracts/src/entities/profile/index.js.map +1 -0
  34. package/contracts/src/entities/profile/profile.entity.d.ts +2 -0
  35. package/contracts/src/entities/profile/profile.entity.js +170 -0
  36. package/contracts/src/entities/profile/profile.entity.js.map +1 -0
  37. package/contracts/src/entities/profile/profile.types.d.ts +5 -0
  38. package/contracts/src/entities/profile/profile.types.js +3 -0
  39. package/contracts/src/entities/profile/profile.types.js.map +1 -0
  40. package/contracts/src/entities/roles/index.d.ts +2 -0
  41. package/contracts/src/entities/roles/index.js +6 -0
  42. package/contracts/src/entities/roles/index.js.map +1 -0
  43. package/contracts/src/entities/roles/roles.entity.d.ts +2 -0
  44. package/contracts/src/entities/roles/roles.entity.js +283 -0
  45. package/contracts/src/entities/roles/roles.entity.js.map +1 -0
  46. package/contracts/src/entities/roles/roles.types.d.ts +7 -0
  47. package/contracts/src/entities/roles/roles.types.js +3 -0
  48. package/contracts/src/entities/roles/roles.types.js.map +1 -0
  49. package/contracts/src/entities/users/index.d.ts +2 -0
  50. package/contracts/src/entities/users/index.js +6 -0
  51. package/contracts/src/entities/users/index.js.map +1 -0
  52. package/contracts/src/entities/users/users.entity.d.ts +2 -0
  53. package/contracts/src/entities/users/users.entity.js +555 -0
  54. package/contracts/src/entities/users/users.entity.js.map +1 -0
  55. package/contracts/src/entities/users/users.types.d.ts +17 -0
  56. package/contracts/src/entities/users/users.types.js +3 -0
  57. package/contracts/src/entities/users/users.types.js.map +1 -0
  58. package/contracts/src/features.keys.d.ts +11 -0
  59. package/contracts/src/features.keys.js +17 -0
  60. package/contracts/src/features.keys.js.map +1 -0
  61. package/contracts/src/index.d.ts +10 -0
  62. package/contracts/src/index.js +16 -0
  63. package/contracts/src/index.js.map +1 -0
  64. package/contracts/src/menu.keys.d.ts +8 -0
  65. package/contracts/src/menu.keys.js +12 -0
  66. package/contracts/src/menu.keys.js.map +1 -0
  67. package/contracts/src/permission.keys.d.ts +28 -0
  68. package/contracts/src/permission.keys.js +34 -0
  69. package/contracts/src/permission.keys.js.map +1 -0
  70. package/contracts/src/root-config.d.ts +44 -0
  71. package/contracts/src/root-config.js +49 -0
  72. package/contracts/src/root-config.js.map +1 -0
  73. package/contracts/src/user-access-state.d.ts +9 -0
  74. package/contracts/src/user-access-state.js +16 -0
  75. package/contracts/src/user-access-state.js.map +1 -0
  76. package/contracts/src/user-effective-state.d.ts +12 -0
  77. package/contracts/src/user-effective-state.js +19 -0
  78. package/contracts/src/user-effective-state.js.map +1 -0
  79. package/package.json +26 -0
  80. package/src/index.d.ts +5 -0
  81. package/src/index.js +13 -0
  82. package/src/index.js.map +1 -0
  83. package/src/lib/security-management-server.module.d.ts +2 -0
  84. package/src/lib/security-management-server.module.js +23 -0
  85. package/src/lib/security-management-server.module.js.map +1 -0
  86. package/src/lib/seed/index.d.ts +22 -0
  87. package/src/lib/seed/index.js +24 -0
  88. package/src/lib/seed/index.js.map +1 -0
  89. package/src/lib/seed/policy/index.d.ts +2 -0
  90. package/src/lib/seed/policy/index.js +6 -0
  91. package/src/lib/seed/policy/index.js.map +1 -0
  92. package/src/lib/seed/policy/policy.mock.d.ts +7 -0
  93. package/src/lib/seed/policy/policy.mock.js +40 -0
  94. package/src/lib/seed/policy/policy.mock.js.map +1 -0
  95. package/src/lib/seed/policy/policy.seed.d.ts +5 -0
  96. package/src/lib/seed/policy/policy.seed.js +31 -0
  97. package/src/lib/seed/policy/policy.seed.js.map +1 -0
  98. package/src/lib/seed/role/index.d.ts +4 -0
  99. package/src/lib/seed/role/index.js +8 -0
  100. package/src/lib/seed/role/index.js.map +1 -0
  101. package/src/lib/seed/role/role-ids.constants.d.ts +14 -0
  102. package/src/lib/seed/role/role-ids.constants.js +20 -0
  103. package/src/lib/seed/role/role-ids.constants.js.map +1 -0
  104. package/src/lib/seed/role/role-permission-keys.constants.d.ts +578 -0
  105. package/src/lib/seed/role/role-permission-keys.constants.js +620 -0
  106. package/src/lib/seed/role/role-permission-keys.constants.js.map +1 -0
  107. package/src/lib/seed/role/role.mock.d.ts +4 -0
  108. package/src/lib/seed/role/role.mock.js +321 -0
  109. package/src/lib/seed/role/role.mock.js.map +1 -0
  110. package/src/lib/seed/role/role.seed.d.ts +5 -0
  111. package/src/lib/seed/role/role.seed.js +31 -0
  112. package/src/lib/seed/role/role.seed.js.map +1 -0
  113. package/src/lib/seed/security-management-seed.provider.d.ts +4 -0
  114. package/src/lib/seed/security-management-seed.provider.js +18 -0
  115. package/src/lib/seed/security-management-seed.provider.js.map +1 -0
  116. package/src/lib/seed/security-management-seed.tokens.d.ts +1 -0
  117. package/src/lib/seed/security-management-seed.tokens.js +7 -0
  118. package/src/lib/seed/security-management-seed.tokens.js.map +1 -0
  119. package/src/lib/seed/security-management.seed-catalog.d.ts +2 -0
  120. package/src/lib/seed/security-management.seed-catalog.js +17 -0
  121. package/src/lib/seed/security-management.seed-catalog.js.map +1 -0
  122. package/src/lib/seed/tenant/index.d.ts +1 -0
  123. package/src/lib/seed/tenant/index.js +5 -0
  124. package/src/lib/seed/tenant/index.js.map +1 -0
  125. package/src/lib/seed/tenant/tenant-ids.constants.d.ts +11 -0
  126. package/src/lib/seed/tenant/tenant-ids.constants.js +17 -0
  127. package/src/lib/seed/tenant/tenant-ids.constants.js.map +1 -0
  128. package/src/lib/seed/user/index.d.ts +4 -0
  129. package/src/lib/seed/user/index.js +13 -0
  130. package/src/lib/seed/user/index.js.map +1 -0
  131. package/src/lib/seed/user/resolve-user-effective-state.util.d.ts +14 -0
  132. package/src/lib/seed/user/resolve-user-effective-state.util.js +61 -0
  133. package/src/lib/seed/user/resolve-user-effective-state.util.js.map +1 -0
  134. package/src/lib/seed/user/user.mock.d.ts +20 -0
  135. package/src/lib/seed/user/user.mock.js +332 -0
  136. package/src/lib/seed/user/user.mock.js.map +1 -0
  137. package/src/lib/seed/user/user.seed.d.ts +5 -0
  138. package/src/lib/seed/user/user.seed.js +31 -0
  139. package/src/lib/seed/user/user.seed.js.map +1 -0
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockUsers = exports.userIds = void 0;
4
+ const core_1 = require("@acorex-platform/framework-shared/core");
5
+ const role_mock_1 = require("../role/role.mock");
6
+ const role_ids_constants_1 = require("../role/role-ids.constants");
7
+ const contracts_1 = require("@acorex-platform/module-security-management-server/contracts");
8
+ const resolve_user_effective_state_util_1 = require("./resolve-user-effective-state.util");
9
+ const seed_1 = require("@acorex-platform/module-common-server/seed");
10
+ Object.defineProperty(exports, "userIds", { enumerable: true, get: function () { return seed_1.userIds; } });
11
+ const tenant_ids_constants_1 = require("../tenant/tenant-ids.constants");
12
+ /**
13
+ * Precomputed PBKDF2-SHA256 hash of the demo password `123`, matching
14
+ * {@link verifyPassword} in `@acorex-platform/framework-client/contracts`.
15
+ * Seeds store hashes (never plaintext); all demo accounts share the same known password.
16
+ */
17
+ const SEEDED_DEMO_PASSWORD_HASH = 'pbkdf2$sha256$100000$hGJ9dwQFO3hNOZ5ftc2BcQ==$hqEDe0iwl4aTTEbplz8DNtVhcaDEApbchw/waAGwGVg=';
18
+ const roleIdMap = role_ids_constants_1.MOCK_ROLE_IDS;
19
+ // Helper function to get roles by IDs
20
+ const getRolesByIds = (roleIds) => {
21
+ return role_mock_1.mockRoleDefinitions
22
+ .filter((role) => roleIds.includes(role.id))
23
+ .map((role) => ({ id: role.id, title: role.title }));
24
+ };
25
+ const rawMockUsers = [
26
+ {
27
+ id: seed_1.MOCK_USER_IDS.root,
28
+ username: 'root',
29
+ displayName: 'Root Platform User',
30
+ roleIds: [roleIdMap.platformApplicationAdministrator],
31
+ roles: getRolesByIds([roleIdMap.platformApplicationAdministrator]),
32
+ password: SEEDED_DEMO_PASSWORD_HASH,
33
+ accountState: core_1.AXPSystemStatusType.Active,
34
+ accessState: contracts_1.AXMUserAccessState.Allowed,
35
+ stateInfo: {
36
+ isSystem: true,
37
+ isImmutable: true,
38
+ isHidden: true,
39
+ },
40
+ ownershipInfo: {
41
+ tenantId: tenant_ids_constants_1.PLATFORM_TENANT_ID, // Platform tenant
42
+ },
43
+ },
44
+ {
45
+ id: seed_1.userIds.superRoot,
46
+ username: 'super-root',
47
+ displayName: 'Super Root User',
48
+ roleIds: [roleIdMap.root],
49
+ roles: getRolesByIds([roleIdMap.root]),
50
+ password: SEEDED_DEMO_PASSWORD_HASH,
51
+ accountState: core_1.AXPSystemStatusType.Active,
52
+ accessState: contracts_1.AXMUserAccessState.Allowed,
53
+ ownershipInfo: {
54
+ tenantId: tenant_ids_constants_1.PLATFORM_TENANT_ID, // Platform tenant
55
+ },
56
+ },
57
+ {
58
+ id: seed_1.userIds.sarahJohnson,
59
+ username: 'sarah.johnson',
60
+ displayName: 'Sarah Johnson',
61
+ roleIds: [roleIdMap.user],
62
+ roles: getRolesByIds([roleIdMap.user]),
63
+ password: SEEDED_DEMO_PASSWORD_HASH,
64
+ accountState: core_1.AXPSystemStatusType.Active,
65
+ accessState: contracts_1.AXMUserAccessState.Allowed,
66
+ ownershipInfo: {
67
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
68
+ },
69
+ },
70
+ {
71
+ id: seed_1.userIds.mikeChen,
72
+ username: 'mike.chen',
73
+ displayName: 'Mike Chen',
74
+ roleIds: [roleIdMap.manager],
75
+ roles: getRolesByIds([roleIdMap.manager]),
76
+ password: SEEDED_DEMO_PASSWORD_HASH,
77
+ accountState: core_1.AXPSystemStatusType.Active,
78
+ accessState: contracts_1.AXMUserAccessState.Blocked,
79
+ ownershipInfo: {
80
+ tenantId: tenant_ids_constants_1.LASER_PLUMBING_TENANT_ID, // Laser Plumbing tenant
81
+ },
82
+ },
83
+ {
84
+ id: seed_1.userIds.emilyRodriguez,
85
+ username: 'emily.rodriguez',
86
+ displayName: 'Emily Rodriguez',
87
+ roleIds: [roleIdMap.tenantAdministrator],
88
+ roles: getRolesByIds([roleIdMap.tenantAdministrator]),
89
+ password: SEEDED_DEMO_PASSWORD_HASH,
90
+ accountState: core_1.AXPSystemStatusType.Active,
91
+ accessState: contracts_1.AXMUserAccessState.Allowed,
92
+ ownershipInfo: {
93
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant (same as heidi.thonig for SafetyMinder demo)
94
+ },
95
+ },
96
+ {
97
+ id: seed_1.userIds.davidThompson,
98
+ username: 'david.thompson',
99
+ displayName: 'David Thompson',
100
+ roleIds: [roleIdMap.support],
101
+ roles: getRolesByIds([roleIdMap.support]),
102
+ password: SEEDED_DEMO_PASSWORD_HASH,
103
+ accountState: core_1.AXPSystemStatusType.Active,
104
+ accessState: contracts_1.AXMUserAccessState.Expired,
105
+ ownershipInfo: {
106
+ tenantId: tenant_ids_constants_1.LASER_PLUMBING_TENANT_ID, // Laser Plumbing tenant
107
+ },
108
+ },
109
+ {
110
+ id: seed_1.userIds.lisaWang,
111
+ username: 'lisa.wang',
112
+ displayName: 'Lisa Wang',
113
+ roleIds: [roleIdMap.hr],
114
+ roles: getRolesByIds([roleIdMap.hr]),
115
+ password: SEEDED_DEMO_PASSWORD_HASH,
116
+ accountState: core_1.AXPSystemStatusType.Inactive,
117
+ accessState: contracts_1.AXMUserAccessState.Allowed,
118
+ ownershipInfo: {
119
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
120
+ },
121
+ },
122
+ {
123
+ id: seed_1.userIds.johnSmith,
124
+ username: 'john.smith',
125
+ displayName: 'John Smith',
126
+ roleIds: [roleIdMap.user, roleIdMap.hr, roleIdMap.support, roleIdMap.dev, roleIdMap.manager],
127
+ roles: getRolesByIds([
128
+ roleIdMap.user,
129
+ roleIdMap.hr,
130
+ roleIdMap.support,
131
+ roleIdMap.dev,
132
+ roleIdMap.manager,
133
+ ]),
134
+ password: SEEDED_DEMO_PASSWORD_HASH,
135
+ accountState: core_1.AXPSystemStatusType.Active,
136
+ accessState: contracts_1.AXMUserAccessState.Allowed,
137
+ ownershipInfo: {
138
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
139
+ },
140
+ },
141
+ {
142
+ id: seed_1.userIds.jenniferLopez,
143
+ username: 'jennifer.lopez',
144
+ displayName: 'Jennifer Lopez',
145
+ roleIds: [roleIdMap.user],
146
+ roles: getRolesByIds([roleIdMap.user]),
147
+ password: SEEDED_DEMO_PASSWORD_HASH,
148
+ accountState: core_1.AXPSystemStatusType.Archived,
149
+ accessState: contracts_1.AXMUserAccessState.Allowed,
150
+ ownershipInfo: {
151
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
152
+ },
153
+ },
154
+ {
155
+ id: seed_1.userIds.robertWilson,
156
+ username: 'robert.wilson',
157
+ displayName: 'Robert Wilson',
158
+ roleIds: [roleIdMap.user],
159
+ roles: getRolesByIds([roleIdMap.user]),
160
+ password: SEEDED_DEMO_PASSWORD_HASH,
161
+ accountState: core_1.AXPSystemStatusType.Pending,
162
+ accessState: contracts_1.AXMUserAccessState.Allowed,
163
+ ownershipInfo: {
164
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
165
+ },
166
+ },
167
+ {
168
+ id: seed_1.userIds.mariaGarcia,
169
+ username: 'maria.garcia',
170
+ displayName: 'Maria Garcia',
171
+ roleIds: [roleIdMap.user],
172
+ roles: getRolesByIds([roleIdMap.user]),
173
+ password: SEEDED_DEMO_PASSWORD_HASH,
174
+ accountState: core_1.AXPSystemStatusType.Pending,
175
+ accessState: contracts_1.AXMUserAccessState.Blocked,
176
+ ownershipInfo: {
177
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
178
+ },
179
+ },
180
+ {
181
+ id: seed_1.userIds.carlosRodriguez,
182
+ username: 'carlos.rodriguez',
183
+ displayName: 'Carlos Rodriguez',
184
+ roleIds: [roleIdMap.user],
185
+ roles: getRolesByIds([roleIdMap.user]),
186
+ password: SEEDED_DEMO_PASSWORD_HASH,
187
+ accountState: core_1.AXPSystemStatusType.Suspended,
188
+ accessState: contracts_1.AXMUserAccessState.Blocked,
189
+ ownershipInfo: {
190
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
191
+ },
192
+ },
193
+ {
194
+ id: seed_1.userIds.alexandraKim,
195
+ username: 'alexandra.kim',
196
+ displayName: 'Alexandra Kim',
197
+ roleIds: [roleIdMap.user],
198
+ roles: getRolesByIds([roleIdMap.user]),
199
+ password: SEEDED_DEMO_PASSWORD_HASH,
200
+ accountState: core_1.AXPSystemStatusType.Active,
201
+ accessState: contracts_1.AXMUserAccessState.Allowed,
202
+ ownershipInfo: {
203
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
204
+ },
205
+ },
206
+ {
207
+ id: seed_1.userIds.marcusSchmidt,
208
+ username: 'marcus.schmidt',
209
+ displayName: 'Marcus Schmidt',
210
+ roleIds: [roleIdMap.user],
211
+ roles: getRolesByIds([roleIdMap.user]),
212
+ password: SEEDED_DEMO_PASSWORD_HASH,
213
+ accountState: core_1.AXPSystemStatusType.Active,
214
+ accessState: contracts_1.AXMUserAccessState.Allowed,
215
+ ownershipInfo: {
216
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
217
+ },
218
+ },
219
+ {
220
+ id: seed_1.userIds.fatimaAlZahra,
221
+ username: 'fatima.alzahra',
222
+ displayName: 'Fatima Al-Zahra',
223
+ roleIds: [roleIdMap.user],
224
+ roles: getRolesByIds([roleIdMap.user]),
225
+ password: SEEDED_DEMO_PASSWORD_HASH,
226
+ accountState: core_1.AXPSystemStatusType.Active,
227
+ accessState: contracts_1.AXMUserAccessState.Allowed,
228
+ ownershipInfo: {
229
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
230
+ },
231
+ },
232
+ {
233
+ id: seed_1.userIds.jamesOConnor,
234
+ username: 'james.oconnor',
235
+ displayName: "James O'Connor",
236
+ roleIds: [roleIdMap.user],
237
+ roles: getRolesByIds([roleIdMap.user]),
238
+ password: SEEDED_DEMO_PASSWORD_HASH,
239
+ accountState: core_1.AXPSystemStatusType.Active,
240
+ accessState: contracts_1.AXMUserAccessState.Allowed,
241
+ ownershipInfo: {
242
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
243
+ },
244
+ },
245
+ {
246
+ id: seed_1.userIds.yukiTanaka,
247
+ username: 'yuki.tanaka',
248
+ displayName: 'Yuki Tanaka',
249
+ roleIds: [roleIdMap.user],
250
+ roles: getRolesByIds([roleIdMap.user]),
251
+ password: SEEDED_DEMO_PASSWORD_HASH,
252
+ accountState: core_1.AXPSystemStatusType.Archived,
253
+ accessState: contracts_1.AXMUserAccessState.Expired,
254
+ ownershipInfo: {
255
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant
256
+ },
257
+ },
258
+ {
259
+ id: seed_1.userIds.rodJensen,
260
+ username: 'rod.jensen',
261
+ displayName: 'Rod Jensen',
262
+ roleIds: [roleIdMap.accountHolder, roleIdMap.tenantAdministrator],
263
+ roles: getRolesByIds([roleIdMap.accountHolder, roleIdMap.tenantAdministrator]),
264
+ password: SEEDED_DEMO_PASSWORD_HASH,
265
+ accountState: core_1.AXPSystemStatusType.Active,
266
+ accessState: contracts_1.AXMUserAccessState.Allowed,
267
+ ownershipInfo: {
268
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant — tenant administrator
269
+ },
270
+ },
271
+ {
272
+ id: seed_1.userIds.heidiThonig,
273
+ username: 'heidi.thonig',
274
+ displayName: 'Heidi Thonig',
275
+ roleIds: [roleIdMap.tenantAdministrator],
276
+ roles: getRolesByIds([roleIdMap.tenantAdministrator]),
277
+ password: SEEDED_DEMO_PASSWORD_HASH,
278
+ accountState: core_1.AXPSystemStatusType.Active,
279
+ accessState: contracts_1.AXMUserAccessState.Allowed,
280
+ ownershipInfo: {
281
+ tenantId: tenant_ids_constants_1.TIMEPLICITY_TENANT_ID, // Timeplicity tenant — tenant administrator
282
+ },
283
+ },
284
+ {
285
+ id: seed_1.userIds.mohamadPourGhorban,
286
+ username: 'mohamad.pour.ghorban',
287
+ displayName: 'Mohammad Pour Ghorban',
288
+ roleIds: [roleIdMap.conversationOnly],
289
+ roles: getRolesByIds([roleIdMap.conversationOnly]),
290
+ password: SEEDED_DEMO_PASSWORD_HASH,
291
+ accountState: core_1.AXPSystemStatusType.Active,
292
+ accessState: contracts_1.AXMUserAccessState.Allowed,
293
+ ownershipInfo: {
294
+ tenantId: tenant_ids_constants_1.MAGFA_TENANT_ID,
295
+ },
296
+ },
297
+ {
298
+ id: seed_1.userIds.arashOshnoudi,
299
+ username: 'arash.oshnoudi@gmail.com',
300
+ displayName: 'Arash Oshnoudi',
301
+ roleIds: [roleIdMap.root],
302
+ roles: getRolesByIds([roleIdMap.root]),
303
+ password: SEEDED_DEMO_PASSWORD_HASH,
304
+ accountState: core_1.AXPSystemStatusType.Active,
305
+ accessState: contracts_1.AXMUserAccessState.Allowed,
306
+ ownershipInfo: {
307
+ tenantId: tenant_ids_constants_1.PLATFORM_TENANT_ID, // ACoreX platform tenant — Google OAuth test account
308
+ },
309
+ },
310
+ ];
311
+ exports.mockUsers = rawMockUsers.map((u) => (Object.assign(Object.assign({}, u), { auditInfo: {
312
+ created: {
313
+ at: new Date('2023-04-12T10:00:00.000Z'),
314
+ by: {
315
+ id: u.id,
316
+ type: 'user',
317
+ fullName: u.displayName,
318
+ },
319
+ },
320
+ updated: {
321
+ at: new Date('2024-06-01T10:00:00.000Z'),
322
+ by: {
323
+ id: u.id,
324
+ type: 'user',
325
+ fullName: u.displayName,
326
+ },
327
+ },
328
+ }, effectiveState: (0, resolve_user_effective_state_util_1.resolveAXMUserEffectiveState)({
329
+ accountState: u.accountState,
330
+ accessState: u.accessState,
331
+ }) })));
332
+ //# sourceMappingURL=user.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.mock.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/seed/user/user.mock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { AXPDataSeeder, AXPEntitySeedDefinition, AXPEntitySeedStorage } from '@acorex-platform/module-common-server/seed';
2
+ export declare const USER_ENTITY_NAME = "SecurityManagement.User";
3
+ export declare function seedUserData(storage: AXPEntitySeedStorage): Promise<void>;
4
+ export declare function createUserDataSeeder(storage: AXPEntitySeedStorage): AXPDataSeeder;
5
+ export declare const userSeedDefinition: AXPEntitySeedDefinition;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userSeedDefinition = exports.USER_ENTITY_NAME = void 0;
4
+ exports.seedUserData = seedUserData;
5
+ exports.createUserDataSeeder = createUserDataSeeder;
6
+ const tslib_1 = require("tslib");
7
+ const seed_1 = require("@acorex-platform/module-common-server/seed");
8
+ const user_mock_1 = require("./user.mock");
9
+ //#region ---- Constants ----
10
+ exports.USER_ENTITY_NAME = 'SecurityManagement.User';
11
+ //#endregion
12
+ //#region ---- Pure seed logic ----
13
+ function seedUserData(storage) {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ yield storage.initial(exports.USER_ENTITY_NAME, user_mock_1.mockUsers, { uniqueKeys: ['id'] });
16
+ });
17
+ }
18
+ function createUserDataSeeder(storage) {
19
+ return {
20
+ name: 'UserDataSeeder',
21
+ seed: () => seedUserData(storage),
22
+ };
23
+ }
24
+ exports.userSeedDefinition = (0, seed_1.defineEntitySeed)({
25
+ name: 'UserDataSeeder',
26
+ entityName: exports.USER_ENTITY_NAME,
27
+ rows: user_mock_1.mockUsers,
28
+ seed: seedUserData,
29
+ });
30
+ //#endregion
31
+ //# sourceMappingURL=user.seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.seed.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/seed/user/user.seed.ts"],"names":[],"mappings":";;;AAWA,oCAEC;AAED,oDAKC;;AApBD,qEAA0I;AAC1I,2CAAwC;AAExC,6BAA6B;AAEhB,QAAA,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,YAAY;AAEZ,mCAAmC;AAEnC,SAAsB,YAAY,CAAC,OAA6B;;QAC9D,MAAM,OAAO,CAAC,OAAO,CAAC,wBAAgB,EAAE,qBAAS,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;CAAA;AAED,SAAgB,oBAAoB,CAAC,OAA6B;IAChE,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;KAClC,CAAC;AACJ,CAAC;AAEY,QAAA,kBAAkB,GAA4B,IAAA,uBAAgB,EAAC;IAC1E,IAAI,EAAE,gBAAgB;IACtB,UAAU,EAAE,wBAAgB;IAC5B,IAAI,EAAE,qBAAS;IACf,IAAI,EAAE,YAAY;CACnB,CAAC,CAAC;AAEH,YAAY"}