@carlonicora/nestjs-neo4jsonapi 6.5.0 → 6.5.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 (83) hide show
  1. package/dist/common/interfaces/s3.key-access.policy.interface.d.ts +6 -1
  2. package/dist/common/interfaces/s3.key-access.policy.interface.d.ts.map +1 -1
  3. package/dist/common/interfaces/s3.key-access.policy.interface.js +6 -1
  4. package/dist/common/interfaces/s3.key-access.policy.interface.js.map +1 -1
  5. package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
  6. package/dist/core/neo4j/abstracts/abstract.repository.js +16 -4
  7. package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
  8. package/dist/core/neo4j/abstracts/abstract.service.d.ts +7 -0
  9. package/dist/core/neo4j/abstracts/abstract.service.d.ts.map +1 -1
  10. package/dist/core/neo4j/abstracts/abstract.service.js +27 -4
  11. package/dist/core/neo4j/abstracts/abstract.service.js.map +1 -1
  12. package/dist/core/neo4j/helpers/build-order-by.d.ts +12 -0
  13. package/dist/core/neo4j/helpers/build-order-by.d.ts.map +1 -1
  14. package/dist/core/neo4j/helpers/build-order-by.js +22 -0
  15. package/dist/core/neo4j/helpers/build-order-by.js.map +1 -1
  16. package/dist/core/security/services/security.service.d.ts +4 -0
  17. package/dist/core/security/services/security.service.d.ts.map +1 -1
  18. package/dist/core/security/services/security.service.js +5 -1
  19. package/dist/core/security/services/security.service.js.map +1 -1
  20. package/dist/core/websocket/gateways/event.gateway.d.ts.map +1 -1
  21. package/dist/core/websocket/gateways/event.gateway.js +18 -9
  22. package/dist/core/websocket/gateways/event.gateway.js.map +1 -1
  23. package/dist/core/websocket/services/presence.cron.service.d.ts.map +1 -1
  24. package/dist/core/websocket/services/presence.cron.service.js +3 -2
  25. package/dist/core/websocket/services/presence.cron.service.js.map +1 -1
  26. package/dist/core/websocket/services/websocket.service.d.ts +23 -1
  27. package/dist/core/websocket/services/websocket.service.d.ts.map +1 -1
  28. package/dist/core/websocket/services/websocket.service.js +37 -4
  29. package/dist/core/websocket/services/websocket.service.js.map +1 -1
  30. package/dist/foundations/auth/repositories/auth.repository.d.ts +11 -0
  31. package/dist/foundations/auth/repositories/auth.repository.d.ts.map +1 -1
  32. package/dist/foundations/auth/repositories/auth.repository.js +37 -0
  33. package/dist/foundations/auth/repositories/auth.repository.js.map +1 -1
  34. package/dist/foundations/auth/services/auth.service.d.ts.map +1 -1
  35. package/dist/foundations/auth/services/auth.service.js +15 -9
  36. package/dist/foundations/auth/services/auth.service.js.map +1 -1
  37. package/dist/foundations/company/services/company.service.d.ts +3 -1
  38. package/dist/foundations/company/services/company.service.d.ts.map +1 -1
  39. package/dist/foundations/company/services/company.service.js +8 -2
  40. package/dist/foundations/company/services/company.service.js.map +1 -1
  41. package/dist/foundations/how-to/controllers/how-to.controller.d.ts +4 -0
  42. package/dist/foundations/how-to/controllers/how-to.controller.d.ts.map +1 -1
  43. package/dist/foundations/how-to/controllers/how-to.controller.js +12 -0
  44. package/dist/foundations/how-to/controllers/how-to.controller.js.map +1 -1
  45. package/dist/foundations/rbac/controllers/rbac-dev.controller.d.ts +9 -0
  46. package/dist/foundations/rbac/controllers/rbac-dev.controller.d.ts.map +1 -1
  47. package/dist/foundations/rbac/controllers/rbac-dev.controller.js +27 -3
  48. package/dist/foundations/rbac/controllers/rbac-dev.controller.js.map +1 -1
  49. package/dist/foundations/rbac/rbac.module.d.ts.map +1 -1
  50. package/dist/foundations/rbac/rbac.module.js +2 -1
  51. package/dist/foundations/rbac/rbac.module.js.map +1 -1
  52. package/dist/foundations/role/controllers/role.controller.d.ts.map +1 -1
  53. package/dist/foundations/role/controllers/role.controller.js +8 -0
  54. package/dist/foundations/role/controllers/role.controller.js.map +1 -1
  55. package/dist/foundations/s3/controllers/s3.controller.d.ts +3 -8
  56. package/dist/foundations/s3/controllers/s3.controller.d.ts.map +1 -1
  57. package/dist/foundations/s3/controllers/s3.controller.js +10 -29
  58. package/dist/foundations/s3/controllers/s3.controller.js.map +1 -1
  59. package/dist/foundations/s3/index.d.ts +1 -0
  60. package/dist/foundations/s3/index.d.ts.map +1 -1
  61. package/dist/foundations/s3/index.js +1 -0
  62. package/dist/foundations/s3/index.js.map +1 -1
  63. package/dist/foundations/s3/s3.service.module.d.ts +2 -1
  64. package/dist/foundations/s3/s3.service.module.d.ts.map +1 -1
  65. package/dist/foundations/s3/s3.service.module.js +5 -3
  66. package/dist/foundations/s3/s3.service.module.js.map +1 -1
  67. package/dist/foundations/s3/services/s3-client-key.service.d.ts +64 -0
  68. package/dist/foundations/s3/services/s3-client-key.service.d.ts.map +1 -0
  69. package/dist/foundations/s3/services/s3-client-key.service.js +120 -0
  70. package/dist/foundations/s3/services/s3-client-key.service.js.map +1 -0
  71. package/dist/foundations/user/controllers/user.controller.d.ts +20 -2
  72. package/dist/foundations/user/controllers/user.controller.d.ts.map +1 -1
  73. package/dist/foundations/user/controllers/user.controller.js +104 -38
  74. package/dist/foundations/user/controllers/user.controller.js.map +1 -1
  75. package/dist/foundations/user/repositories/user.repository.d.ts +35 -0
  76. package/dist/foundations/user/repositories/user.repository.d.ts.map +1 -1
  77. package/dist/foundations/user/repositories/user.repository.js +60 -13
  78. package/dist/foundations/user/repositories/user.repository.js.map +1 -1
  79. package/dist/foundations/user/services/user.service.d.ts +21 -1
  80. package/dist/foundations/user/services/user.service.d.ts.map +1 -1
  81. package/dist/foundations/user/services/user.service.js +37 -3
  82. package/dist/foundations/user/services/user.service.js.map +1 -1
  83. package/package.json +1 -1
@@ -45,6 +45,17 @@ let UserController = class UserController {
45
45
  this.relevancyService = relevancyService;
46
46
  this.cypherService = cypherService;
47
47
  }
48
+ /** Platform administrator: the global Administrator role. */
49
+ isPlatformAdmin(user) {
50
+ return this.security.isUserInRoles({ user: user, roles: [system_roles_1.RoleId.Administrator] });
51
+ }
52
+ /** Administrator OR CompanyAdministrator. */
53
+ isAnyAdmin(user) {
54
+ return this.security.isUserInRoles({
55
+ user: user,
56
+ roles: [system_roles_1.RoleId.Administrator, system_roles_1.RoleId.CompanyAdministrator],
57
+ });
58
+ }
48
59
  async findBySearch(request, reply, query, search, includeDeleted, contentIds) {
49
60
  const isAdmin = this.security.isUserInRoles({
50
61
  user: request.user,
@@ -80,10 +91,24 @@ let UserController = class UserController {
80
91
  });
81
92
  reply.send(response);
82
93
  }
83
- async findOneByEmail(email) {
84
- return this.users.findByEmail({ email: email });
94
+ /**
95
+ * Admin lookup (the user editor's duplicate-email check). Bound to the
96
+ * caller's company: a user of another company answers 404, like a missing
97
+ * one. Only a platform administrator looks up across companies.
98
+ */
99
+ async findOneByEmail(request, email) {
100
+ if (this.isPlatformAdmin(request.user))
101
+ return this.users.findByEmailInCompany({ email: email });
102
+ const companyId = request.user?.companyId;
103
+ if (!companyId)
104
+ throw new common_1.ForbiddenException("No company in context");
105
+ return this.users.findByEmailInCompany({ email: email, companyId: companyId });
85
106
  }
86
107
  async findByCompany(request, reply, companyId, query, search, includeDeleted, isDeleted) {
108
+ // The URL company replaces the CLS company below, so only the caller's own
109
+ // company (or a platform administrator) may be listed.
110
+ if (request.user?.companyId !== companyId && !this.isPlatformAdmin(request.user))
111
+ throw new common_1.ForbiddenException("You cannot list the users of another company");
87
112
  this.clsService.set("companyId", companyId);
88
113
  const response = await this.users.findManyByCompany({
89
114
  query: query,
@@ -95,24 +120,37 @@ let UserController = class UserController {
95
120
  reply.send(response);
96
121
  }
97
122
  async createUser(request, body, reply, lng) {
98
- try {
99
- await this.users.expectNotExists({ email: body.data.attributes.email });
100
- }
101
- catch {
102
- return this.users.findByEmail({ email: body.data.attributes.email });
103
- }
123
+ // 409 when the email is taken. It used to answer with that user's full
124
+ // record, whatever company they belonged to.
125
+ await this.users.expectNotExists({ email: body.data.attributes.email });
104
126
  let forceCompanyAdmin = false;
105
127
  if (!body.included?.length) {
106
128
  if (!body.data.relationships?.company?.data?.id)
107
129
  throw new common_1.HttpException("A new user needs a company relationship or an included company", common_1.HttpStatus.BAD_REQUEST);
130
+ // A CompanyAdministrator creates users in their own company only: any
131
+ // other id would let them mint an account (with roles) in another tenant.
132
+ if (body.data.relationships.company.data.id !== request.user?.companyId && !this.isPlatformAdmin(request.user))
133
+ throw new common_1.ForbiddenException("You cannot create users in another company");
108
134
  await this.companyService.validate({
109
135
  companyId: body.data.relationships.company.data.id,
110
136
  });
111
137
  }
112
138
  else {
113
- await this.companyService.createCompanyFromDTO({
114
- data: body.included[0],
115
- });
139
+ // Creating a company (with its credit balances) together with its first
140
+ // administrator is a platform operation. The new user always lands in
141
+ // that new company: before, the relationship could name any existing
142
+ // company and plant a CompanyAdministrator there.
143
+ if (!this.isPlatformAdmin(request.user))
144
+ throw new common_1.ForbiddenException("Only a platform administrator can create a company with a user");
145
+ const includedCompany = body.included[0];
146
+ const relatedCompanyId = body.data.relationships?.company?.data?.id;
147
+ if (relatedCompanyId && relatedCompanyId !== includedCompany.id)
148
+ throw new common_1.HttpException("The user's company must be the included company", common_1.HttpStatus.BAD_REQUEST);
149
+ await this.companyService.createCompanyFromDTO({ data: includedCompany });
150
+ body.data.relationships = {
151
+ ...body.data.relationships,
152
+ company: { data: { type: company_meta_1.companyMeta.endpoint, id: includedCompany.id } },
153
+ };
116
154
  forceCompanyAdmin = true;
117
155
  }
118
156
  const response = await this.users.createUser({
@@ -123,26 +161,31 @@ let UserController = class UserController {
123
161
  reply.send(response);
124
162
  }
125
163
  async put(request, userId, body, reply) {
126
- if (request.user.userId !== userId)
127
- this.security.validateAdmin({ user: request.user });
128
- const isAdmin = this.security.isUserInRoles({
129
- user: request.user,
130
- roles: [system_roles_1.RoleId.Administrator, system_roles_1.RoleId.CompanyAdministrator],
131
- });
164
+ const isCurrentUser = request.user.userId === userId;
165
+ const isAdmin = this.isAnyAdmin(request.user);
166
+ if (!isCurrentUser && !isAdmin)
167
+ throw new common_1.ForbiddenException("You are not allowed to edit this user");
168
+ // Not self: the repository only reaches a user BELONGING_TO the CLS company.
132
169
  const response = await this.users.putUser({
133
170
  data: body.data,
134
171
  isAdmin: isAdmin,
135
- isCurrentUser: request.user.userId === userId,
172
+ isCurrentUser: isCurrentUser,
136
173
  });
137
174
  reply.send(response);
138
175
  }
139
176
  async reactivateUser(request, userId, reply) {
140
177
  this.security.validateAdmin({ user: request.user });
141
- const response = await this.users.reactivate({ userId: userId });
178
+ const response = await this.users.reactivate({
179
+ userId: userId,
180
+ isPlatformAdmin: this.isPlatformAdmin(request.user),
181
+ });
142
182
  reply.send(response);
143
183
  }
144
184
  async updateUserAvatar(request, userId, body, reply) {
145
- const response = await this.users.patchAvatar({ data: body.data });
185
+ const isSelf = request.user?.userId === userId;
186
+ if (!isSelf && !this.isAnyAdmin(request.user))
187
+ throw new common_1.ForbiddenException("You are not allowed to edit this user");
188
+ const response = await this.users.patchAvatar({ data: body.data, isSelf: isSelf });
146
189
  reply.send(response);
147
190
  }
148
191
  /**
@@ -159,7 +202,10 @@ let UserController = class UserController {
159
202
  reply.send(response);
160
203
  }
161
204
  async updateUserRates(request, userId, body, reply) {
162
- const response = await this.users.patchRate({ data: body.data });
205
+ const response = await this.users.patchRate({
206
+ data: body.data,
207
+ isPlatformAdmin: this.isPlatformAdmin(request.user),
208
+ });
163
209
  reply.send(response);
164
210
  }
165
211
  async sendInvitationEmail(request, userId) {
@@ -167,8 +213,12 @@ let UserController = class UserController {
167
213
  await this.users.sendInvitationEmail({ userId: userId });
168
214
  }
169
215
  async delete(request, userId) {
216
+ if (!this.isAnyAdmin(request.user))
217
+ throw new common_1.ForbiddenException("You are not allowed to delete this user");
218
+ // Non-platform callers only reach users BELONGING_TO their CLS company.
170
219
  await this.users.deleteUser({
171
220
  userId: userId,
221
+ isPlatformAdmin: this.isPlatformAdmin(request.user),
172
222
  });
173
223
  }
174
224
  async findUserByRole(req, query, roleId, notInRole, search) {
@@ -190,33 +240,42 @@ let UserController = class UserController {
190
240
  isAdmin: isAdmin,
191
241
  });
192
242
  }
243
+ /**
244
+ * Role grants are never self-service.
245
+ * - Administrator is a PLATFORM grant: only a platform administrator may
246
+ * give or take it.
247
+ * - Any other role: Administrator or CompanyAdministrator. A
248
+ * CompanyAdministrator acts inside their CLS company only; the repository
249
+ * matches the target user through BELONGS_TO that company.
250
+ */
251
+ assertCanManageRole(req, roleId) {
252
+ if (roleId === system_roles_1.RoleId.Administrator) {
253
+ if (!this.isPlatformAdmin(req.user))
254
+ throw new common_1.ForbiddenException("Only a platform administrator can manage the Administrator role");
255
+ return;
256
+ }
257
+ if (!this.isAnyAdmin(req.user))
258
+ throw new common_1.ForbiddenException("You are not allowed to manage roles");
259
+ if (!this.isPlatformAdmin(req.user) && !this.clsService.get("companyId"))
260
+ throw new common_1.ForbiddenException("You are not allowed to manage roles");
261
+ }
193
262
  async addUserToRole(req, roleId, userId, reply) {
194
- const isAdmin = this.security.isUserInRoles({
195
- user: req.user,
196
- roles: [system_roles_1.RoleId.Administrator, system_roles_1.RoleId.CompanyAdministrator],
197
- });
198
- if (!isAdmin && req.user.userId !== userId)
199
- throw new common_1.HttpException("You are not allowed to edit this user", common_1.HttpStatus.FORBIDDEN);
263
+ this.assertCanManageRole(req, roleId);
200
264
  const response = await this.users.addUserToRole({
201
265
  userId: userId,
202
266
  roleId: roleId,
203
- returnsFull: isAdmin || req.user.userId === userId,
267
+ returnsFull: true,
204
268
  });
205
269
  reply.send(response);
206
270
  await this.cacheService.invalidateByElement(user_meta_1.userMeta.endpoint, userId);
207
271
  await this.cacheService.invalidateByElement(role_meta_1.roleMeta.endpoint, roleId);
208
272
  }
209
273
  async removeUserToRole(req, roleId, userId) {
210
- const isAdmin = this.security.isUserInRoles({
211
- user: req.user,
212
- roles: [system_roles_1.RoleId.Administrator, system_roles_1.RoleId.CompanyAdministrator],
213
- });
214
- if (!isAdmin && req.user.userId !== userId)
215
- throw new common_1.HttpException("You are not allowed to edit this user", common_1.HttpStatus.FORBIDDEN);
274
+ this.assertCanManageRole(req, roleId);
216
275
  await this.users.removeUserFromRole({
217
276
  roleId: roleId,
218
277
  userId: userId,
219
- returnsFull: isAdmin || req.user.userId === userId,
278
+ returnsFull: true,
220
279
  });
221
280
  await this.cacheService.invalidateByElement(user_meta_1.userMeta.endpoint, userId);
222
281
  await this.cacheService.invalidateByElement(role_meta_1.roleMeta.endpoint, roleId);
@@ -260,9 +319,11 @@ __decorate([
260
319
  ], UserController.prototype, "findFullUser", null);
261
320
  __decorate([
262
321
  (0, common_1.Get)(`${user_meta_1.userMeta.endpoint}/email/:email`),
263
- __param(0, (0, common_1.Param)("email")),
322
+ (0, roles_decorator_1.Roles)(system_roles_1.RoleId.Administrator, system_roles_1.RoleId.CompanyAdministrator),
323
+ __param(0, (0, common_1.Req)()),
324
+ __param(1, (0, common_1.Param)("email")),
264
325
  __metadata("design:type", Function),
265
- __metadata("design:paramtypes", [String]),
326
+ __metadata("design:paramtypes", [Object, String]),
266
327
  __metadata("design:returntype", Promise)
267
328
  ], UserController.prototype, "findOneByEmail", null);
268
329
  __decorate([
@@ -291,7 +352,10 @@ __decorate([
291
352
  __metadata("design:returntype", Promise)
292
353
  ], UserController.prototype, "createUser", null);
293
354
  __decorate([
294
- (0, common_1.Put)(`${user_meta_1.userMeta.endpoint}/:userId`),
355
+ (0, common_1.Put)(`${user_meta_1.userMeta.endpoint}/:userId`)
356
+ // The service writes body.data.id: it must be the URL id (412 otherwise).
357
+ ,
358
+ (0, validate_id_decorator_1.ValidateId)("userId"),
295
359
  (0, cache_invalidate_decorator_1.CacheInvalidate)(user_meta_1.userMeta, "userId"),
296
360
  __param(0, (0, common_1.Request)()),
297
361
  __param(1, (0, common_1.Param)("userId")),
@@ -313,6 +377,7 @@ __decorate([
313
377
  ], UserController.prototype, "reactivateUser", null);
314
378
  __decorate([
315
379
  (0, common_1.Patch)(`${user_meta_1.userMeta.endpoint}/:userId/avatar`),
380
+ (0, validate_id_decorator_1.ValidateId)("userId"),
316
381
  (0, cache_invalidate_decorator_1.CacheInvalidate)(user_meta_1.userMeta, "userId"),
317
382
  __param(0, (0, common_1.Request)()),
318
383
  __param(1, (0, common_1.Param)("userId")),
@@ -337,6 +402,7 @@ __decorate([
337
402
  __decorate([
338
403
  (0, common_1.Patch)(`${user_meta_1.userMeta.endpoint}/:userId/rates`),
339
404
  (0, roles_decorator_1.Roles)(system_roles_1.RoleId.CompanyAdministrator),
405
+ (0, validate_id_decorator_1.ValidateId)("userId"),
340
406
  (0, cache_invalidate_decorator_1.CacheInvalidate)(user_meta_1.userMeta, "userId"),
341
407
  __param(0, (0, common_1.Request)()),
342
408
  __param(1, (0, common_1.Param)("userId")),
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../../../src/foundations/user/controllers/user.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../../../src/foundations/user/controllers/user.controller.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,17 @@ export declare class UserRepository extends AbstractRepository<User, typeof User
47
47
  };
48
48
  }>;
49
49
  constructor(neo4j: Neo4jService, securityService: SecurityService, clsService: ClsService, userCypherService: UserCypherService);
50
+ /**
51
+ * Binds `user` to `$userId` ONLY when that user belongs to the request
52
+ * company (`$companyId`, from CLS). With no company in context
53
+ * `$companyId` is null and the fragment matches nothing, so a by-id write
54
+ * can never reach a user of another tenant.
55
+ *
56
+ * Used with `query.query =` (assigned, not appended): the initQuery
57
+ * preamble also requires the CALLER to belong to the company, which a
58
+ * platform administrator acting through the x-companyid header does not.
59
+ */
60
+ protected companyScopedUserMatch(): string;
50
61
  /**
51
62
  * `AbstractRepository.onModuleInit` creates the constraints and indexes
52
63
  * declared by the descriptor. `defineEntity` only ever emits the `id` UNIQUE
@@ -159,12 +170,22 @@ export declare class UserRepository extends AbstractRepository<User, typeof User
159
170
  userId: string;
160
171
  source: SignupSource;
161
172
  }): Promise<void>;
173
+ /**
174
+ * `isPlatformAdmin` reaches any user by id; otherwise only a user belonging
175
+ * to the request company is reactivated (see `companyScopedUserMatch`).
176
+ */
162
177
  reactivate(params: {
163
178
  userId: string;
179
+ isPlatformAdmin?: boolean;
164
180
  }): Promise<void>;
181
+ /**
182
+ * `isPlatformAdmin` reaches any user by id; otherwise only a user belonging
183
+ * to the request company is updated (see `companyScopedUserMatch`).
184
+ */
165
185
  patchRate(params: {
166
186
  userId: string;
167
187
  rate: number;
188
+ isPlatformAdmin?: boolean;
168
189
  }): Promise<void>;
169
190
  patchLanguage(params: {
170
191
  userId: string;
@@ -179,12 +200,26 @@ export declare class UserRepository extends AbstractRepository<User, typeof User
179
200
  userId?: string;
180
201
  email?: string;
181
202
  }): Promise<User | undefined>;
203
+ /**
204
+ * `isSelf` (the controller has checked the caller IS `userId`) matches the
205
+ * user by id, so a platform administrator without a company can still set
206
+ * their own avatar. Anyone else's avatar is reachable only inside the
207
+ * request company (see `companyScopedUserMatch`).
208
+ */
182
209
  patchAvatar(params: {
183
210
  userId: string;
184
211
  avatar: string;
212
+ isSelf?: boolean;
185
213
  }): Promise<void>;
214
+ /**
215
+ * Soft-deletes a user. `isPlatformAdmin` reaches any user by id; otherwise
216
+ * only a user belonging to the request company (`$companyId`) is deleted.
217
+ * The previous unbound `MATCH (company:Company)` matched every company, so
218
+ * any caller could soft-delete any user on the platform.
219
+ */
186
220
  deleteUser(params: {
187
221
  userId: string;
222
+ isPlatformAdmin?: boolean;
188
223
  }): Promise<void>;
189
224
  addUserToRole(params: {
190
225
  userId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/user/repositories/user.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/user/repositories/user.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAYnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EAAwB,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAExF;;;;;;;;;;;;;;GAcG;AACH,qBACa,cAAe,SAAQ,kBAAkB,CAAC,IAAI,EAAE,OAAO,cAAc,CAAC,aAAa,CAAC;IAO7F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IANzD,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;OAAkB;gBAG7C,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACH,iBAAiB,EAAE,iBAAiB;IAKzD;;;;;;;;;OASG;IACH,SAAS,CAAC,sBAAsB,IAAI,MAAM;IAO1C;;;;;;;OAOG;IACG,YAAY;IAQZ,gBAAgB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAmB9D,eAAe,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhE;;;;OAIG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhE,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDvD,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B3E,WAAW,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/E,UAAU,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD,QAAQ,CAAC,MAAM,EAAE;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAgDb,oBAAoB,CAAC,MAAM,EAAE;QACjC,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAuBb,iBAAiB,CAAC,MAAM,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAoBb,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA0BtG,aAAa,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA+BzG,UAAU,CAAC,MAAM,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDX,SAAS,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpD,OAAO,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,iFAAiF;QACjF,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFX,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtF;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtF;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7F,aAAa,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBhF;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAuB7F;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9F;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhF,aAAa,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BxE,kBAAkB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnF;;;OAGG;IACG,0BAA0B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAiBnD;;;OAGG;IACG,mCAAmC,CAAC,MAAM,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA0BhG;;;OAGG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAmB5E"}
@@ -49,6 +49,22 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
49
49
  this.userCypherService = userCypherService;
50
50
  this.descriptor = user_1.UserDescriptor;
51
51
  }
52
+ /**
53
+ * Binds `user` to `$userId` ONLY when that user belongs to the request
54
+ * company (`$companyId`, from CLS). With no company in context
55
+ * `$companyId` is null and the fragment matches nothing, so a by-id write
56
+ * can never reach a user of another tenant.
57
+ *
58
+ * Used with `query.query =` (assigned, not appended): the initQuery
59
+ * preamble also requires the CALLER to belong to the company, which a
60
+ * platform administrator acting through the x-companyid header does not.
61
+ */
62
+ companyScopedUserMatch() {
63
+ return `
64
+ MATCH (company:Company {id: $companyId})
65
+ MATCH (user:User {id: $userId})-[:BELONGS_TO]->(company)
66
+ `;
67
+ }
52
68
  /**
53
69
  * `AbstractRepository.onModuleInit` creates the constraints and indexes
54
70
  * declared by the descriptor. `defineEntity` only ever emits the `id` UNIQUE
@@ -483,10 +499,19 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
483
499
  // anyone else's user this match is what confines a CompanyAdministrator to
484
500
  // their own company. Roles are company-scoped, so the role block below stays
485
501
  // gated on the company being matched.
502
+ //
503
+ // When the caller edits SOMEONE ELSE the user must also BELONG_TO that
504
+ // company: matching the company alone left `user` unbound to it, so a
505
+ // CompanyAdministrator could rewrite the email/password of any user on the
506
+ // platform by id.
486
507
  const scopeToCompany = !!query.queryParams.companyId || !params.isSelf;
487
508
  query.query = `
488
- ${scopeToCompany ? `MATCH (company:Company {id: $companyId})` : ``}
489
- MATCH (user:User {id: $userId})
509
+ ${!params.isSelf
510
+ ? this.companyScopedUserMatch()
511
+ : `
512
+ ${scopeToCompany ? `MATCH (company:Company {id: $companyId})` : ``}
513
+ MATCH (user:User {id: $userId})
514
+ `}
490
515
  SET ${setClauses.join(", ")}
491
516
 
492
517
  ${scopeToCompany && params.isAdmin && params.roles !== undefined
@@ -541,18 +566,26 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
541
566
  `;
542
567
  await this.neo4j.writeOne(query);
543
568
  }
569
+ /**
570
+ * `isPlatformAdmin` reaches any user by id; otherwise only a user belonging
571
+ * to the request company is reactivated (see `companyScopedUserMatch`).
572
+ */
544
573
  async reactivate(params) {
545
574
  const query = this.neo4j.initQuery();
546
575
  query.queryParams = {
547
576
  ...query.queryParams,
548
577
  userId: params.userId,
549
578
  };
550
- query.query += `
551
- MATCH (user:User {id: $userId})
579
+ query.query = `
580
+ ${params.isPlatformAdmin ? `MATCH (user:User {id: $userId})` : this.companyScopedUserMatch()}
552
581
  SET user.isDeleted = false
553
582
  `;
554
583
  await this.neo4j.writeOne(query);
555
584
  }
585
+ /**
586
+ * `isPlatformAdmin` reaches any user by id; otherwise only a user belonging
587
+ * to the request company is updated (see `companyScopedUserMatch`).
588
+ */
556
589
  async patchRate(params) {
557
590
  const query = this.neo4j.initQuery();
558
591
  query.queryParams = {
@@ -560,8 +593,8 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
560
593
  userId: params.userId,
561
594
  rate: params.rate,
562
595
  };
563
- query.query += `
564
- MATCH (user:User {id: $userId})
596
+ query.query = `
597
+ ${params.isPlatformAdmin ? `MATCH (user:User {id: $userId})` : this.companyScopedUserMatch()}
565
598
  SET user.rate = $rate,
566
599
  user.updatedAt = datetime()
567
600
  `;
@@ -608,6 +641,12 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
608
641
  `;
609
642
  return (await this.neo4j.readOne(query)) ?? undefined;
610
643
  }
644
+ /**
645
+ * `isSelf` (the controller has checked the caller IS `userId`) matches the
646
+ * user by id, so a platform administrator without a company can still set
647
+ * their own avatar. Anyone else's avatar is reachable only inside the
648
+ * request company (see `companyScopedUserMatch`).
649
+ */
611
650
  async patchAvatar(params) {
612
651
  const query = this.neo4j.initQuery();
613
652
  query.queryParams = {
@@ -615,13 +654,19 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
615
654
  userId: params.userId,
616
655
  avatar: params.avatar,
617
656
  };
618
- query.query += `
619
- MATCH (user:User {id: $userId})
657
+ query.query = `
658
+ ${params.isSelf ? `MATCH (user:User {id: $userId})` : this.companyScopedUserMatch()}
620
659
  SET user.avatar = $avatar,
621
660
  user.updatedAt = datetime()
622
661
  `;
623
662
  await this.neo4j.writeOne(query);
624
663
  }
664
+ /**
665
+ * Soft-deletes a user. `isPlatformAdmin` reaches any user by id; otherwise
666
+ * only a user belonging to the request company (`$companyId`) is deleted.
667
+ * The previous unbound `MATCH (company:Company)` matched every company, so
668
+ * any caller could soft-delete any user on the platform.
669
+ */
625
670
  async deleteUser(params) {
626
671
  const query = this.neo4j.initQuery();
627
672
  query.queryParams = {
@@ -629,10 +674,9 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
629
674
  userId: params.userId,
630
675
  };
631
676
  query.query = `
632
- MATCH (company:Company)
633
- MATCH (user:User {id: $userId})-[:BELONGS_TO]->(company)
634
- SET user.isDeleted = true
635
- `;
677
+ ${params.isPlatformAdmin ? `MATCH (user:User {id: $userId})` : this.companyScopedUserMatch()}
678
+ SET user.isDeleted = true
679
+ `;
636
680
  await this.neo4j.writeOne(query);
637
681
  }
638
682
  async addUserToRole(params) {
@@ -668,9 +712,12 @@ let UserRepository = class UserRepository extends abstract_repository_1.Abstract
668
712
  userId: params.userId,
669
713
  administratorRoleId: system_roles_1.RoleId.Administrator,
670
714
  };
715
+ // A company role is removed only from a user who BELONGS_TO the request
716
+ // company, mirroring the grant in addUserToRole. Administrator lives on the
717
+ // platform membership (no IN_COMPANY) and needs no company.
671
718
  query.query += `
672
719
  MATCH (user:User {id: $userId})-[:HAS_MEMBERSHIP]->(rm_ms:Membership)
673
- WHERE (rm_ms)-[:IN_COMPANY]->(:Company {id: $companyId})
720
+ WHERE ((user)-[:BELONGS_TO]->(:Company {id: $companyId}) AND (rm_ms)-[:IN_COMPANY]->(:Company {id: $companyId}))
674
721
  OR ($roleId = $administratorRoleId AND NOT (rm_ms)-[:IN_COMPANY]->(:Company))
675
722
  MATCH (rm_ms)-[rel:HAS_ROLE]->(:Role {id: $roleId})
676
723
  DELETE rel