@ackplus/nest-auth 1.1.69-beta.2 → 1.1.69-beta.8

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 (118) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -4
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/admin-console/admin-console.module.d.ts.map +1 -1
  6. package/dist/lib/admin-console/admin-console.module.js +1 -2
  7. package/dist/lib/admin-console/admin-console.module.js.map +1 -1
  8. package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts +0 -13
  9. package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts.map +1 -1
  10. package/dist/lib/admin-console/controllers/admin-auth.controller.js +0 -33
  11. package/dist/lib/admin-console/controllers/admin-auth.controller.js.map +1 -1
  12. package/dist/lib/admin-console/controllers/admin-permissions.controller.d.ts +1 -12
  13. package/dist/lib/admin-console/controllers/admin-permissions.controller.d.ts.map +1 -1
  14. package/dist/lib/admin-console/controllers/admin-permissions.controller.js +3 -35
  15. package/dist/lib/admin-console/controllers/admin-permissions.controller.js.map +1 -1
  16. package/dist/lib/admin-console/controllers/admin-roles.controller.d.ts +19 -1
  17. package/dist/lib/admin-console/controllers/admin-roles.controller.d.ts.map +1 -1
  18. package/dist/lib/admin-console/controllers/admin-roles.controller.js +24 -27
  19. package/dist/lib/admin-console/controllers/admin-roles.controller.js.map +1 -1
  20. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts +112 -4
  21. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts.map +1 -1
  22. package/dist/lib/admin-console/controllers/admin-users.controller.js +80 -11
  23. package/dist/lib/admin-console/controllers/admin-users.controller.js.map +1 -1
  24. package/dist/lib/admin-console/dto/admin-permission.dto.d.ts +1 -5
  25. package/dist/lib/admin-console/dto/admin-permission.dto.d.ts.map +1 -1
  26. package/dist/lib/admin-console/dto/admin-permission.dto.js +4 -46
  27. package/dist/lib/admin-console/dto/admin-permission.dto.js.map +1 -1
  28. package/dist/lib/admin-console/dto/admin-role.dto.d.ts +2 -2
  29. package/dist/lib/admin-console/dto/admin-role.dto.d.ts.map +1 -1
  30. package/dist/lib/admin-console/dto/admin-role.dto.js +8 -8
  31. package/dist/lib/admin-console/dto/admin-role.dto.js.map +1 -1
  32. package/dist/lib/admin-console/dto/admin-user.dto.d.ts +4 -1
  33. package/dist/lib/admin-console/dto/admin-user.dto.d.ts.map +1 -1
  34. package/dist/lib/admin-console/dto/admin-user.dto.js +23 -0
  35. package/dist/lib/admin-console/dto/admin-user.dto.js.map +1 -1
  36. package/dist/lib/admin-console/services/admin-console-config.service.d.ts +2 -0
  37. package/dist/lib/admin-console/services/admin-console-config.service.d.ts.map +1 -1
  38. package/dist/lib/admin-console/services/admin-console-config.service.js +7 -0
  39. package/dist/lib/admin-console/services/admin-console-config.service.js.map +1 -1
  40. package/dist/lib/admin-console/static/index.html +649 -470
  41. package/dist/lib/admin-console/static/nest-auth.json +30 -2
  42. package/dist/lib/auth/controllers/auth.controller.d.ts +8 -2
  43. package/dist/lib/auth/controllers/auth.controller.d.ts.map +1 -1
  44. package/dist/lib/auth/controllers/auth.controller.js +57 -9
  45. package/dist/lib/auth/controllers/auth.controller.js.map +1 -1
  46. package/dist/lib/auth/guards/auth.guard.d.ts.map +1 -1
  47. package/dist/lib/auth/guards/auth.guard.js +2 -3
  48. package/dist/lib/auth/guards/auth.guard.js.map +1 -1
  49. package/dist/lib/auth/services/auth.service.d.ts +0 -1
  50. package/dist/lib/auth/services/auth.service.d.ts.map +1 -1
  51. package/dist/lib/auth/services/auth.service.js +39 -25
  52. package/dist/lib/auth/services/auth.service.js.map +1 -1
  53. package/dist/lib/auth/services/password.service.d.ts +4 -9
  54. package/dist/lib/auth/services/password.service.d.ts.map +1 -1
  55. package/dist/lib/auth/services/password.service.js +2 -51
  56. package/dist/lib/auth/services/password.service.js.map +1 -1
  57. package/dist/lib/auth.constants.d.ts +2 -0
  58. package/dist/lib/auth.constants.d.ts.map +1 -1
  59. package/dist/lib/auth.constants.js +1 -0
  60. package/dist/lib/auth.constants.js.map +1 -1
  61. package/dist/lib/core/entities.d.ts +3 -1
  62. package/dist/lib/core/entities.d.ts.map +1 -1
  63. package/dist/lib/core/entities.js +3 -0
  64. package/dist/lib/core/entities.js.map +1 -1
  65. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts +1 -0
  66. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts.map +1 -1
  67. package/dist/lib/core/services/auth-config.service.d.ts +2 -0
  68. package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
  69. package/dist/lib/core/services/auth-config.service.js +16 -0
  70. package/dist/lib/core/services/auth-config.service.js.map +1 -1
  71. package/dist/lib/permission/entities/permission.entity.d.ts +2 -1
  72. package/dist/lib/permission/entities/permission.entity.d.ts.map +1 -1
  73. package/dist/lib/permission/entities/permission.entity.js +5 -4
  74. package/dist/lib/permission/entities/permission.entity.js.map +1 -1
  75. package/dist/lib/permission/permission.module.d.ts.map +1 -1
  76. package/dist/lib/permission/permission.module.js +2 -0
  77. package/dist/lib/permission/permission.module.js.map +1 -1
  78. package/dist/lib/permission/services/permission.service.d.ts +7 -9
  79. package/dist/lib/permission/services/permission.service.d.ts.map +1 -1
  80. package/dist/lib/permission/services/permission.service.js +38 -24
  81. package/dist/lib/permission/services/permission.service.js.map +1 -1
  82. package/dist/lib/role/entities/role-permission.entity.d.ts +12 -0
  83. package/dist/lib/role/entities/role-permission.entity.d.ts.map +1 -0
  84. package/dist/lib/role/entities/role-permission.entity.js +59 -0
  85. package/dist/lib/role/entities/role-permission.entity.js.map +1 -0
  86. package/dist/lib/role/entities/role.entity.d.ts +2 -5
  87. package/dist/lib/role/entities/role.entity.d.ts.map +1 -1
  88. package/dist/lib/role/entities/role.entity.js +6 -51
  89. package/dist/lib/role/entities/role.entity.js.map +1 -1
  90. package/dist/lib/role/index.d.ts +3 -0
  91. package/dist/lib/role/index.d.ts.map +1 -1
  92. package/dist/lib/role/index.js +3 -0
  93. package/dist/lib/role/index.js.map +1 -1
  94. package/dist/lib/role/role.module.d.ts.map +1 -1
  95. package/dist/lib/role/role.module.js +5 -3
  96. package/dist/lib/role/role.module.js.map +1 -1
  97. package/dist/lib/role/services/role.service.d.ts +22 -10
  98. package/dist/lib/role/services/role.service.d.ts.map +1 -1
  99. package/dist/lib/role/services/role.service.js +271 -137
  100. package/dist/lib/role/services/role.service.js.map +1 -1
  101. package/dist/lib/role/utils/role-mapper.util.d.ts +26 -0
  102. package/dist/lib/role/utils/role-mapper.util.d.ts.map +1 -0
  103. package/dist/lib/role/utils/role-mapper.util.js +40 -0
  104. package/dist/lib/role/utils/role-mapper.util.js.map +1 -0
  105. package/dist/lib/session/services/session-manager.service.d.ts.map +1 -1
  106. package/dist/lib/session/services/session-manager.service.js +2 -1
  107. package/dist/lib/session/services/session-manager.service.js.map +1 -1
  108. package/dist/lib/user/entities/user.entity.d.ts +2 -2
  109. package/dist/lib/user/entities/user.entity.d.ts.map +1 -1
  110. package/dist/lib/user/entities/user.entity.js +6 -5
  111. package/dist/lib/user/entities/user.entity.js.map +1 -1
  112. package/dist/lib/user/services/access-key.service.d.ts.map +1 -1
  113. package/dist/lib/user/services/access-key.service.js +6 -1
  114. package/dist/lib/user/services/access-key.service.js.map +1 -1
  115. package/dist/lib/user/services/user.service.d.ts.map +1 -1
  116. package/dist/lib/user/services/user.service.js +4 -1
  117. package/dist/lib/user/services/user.service.js.map +1 -1
  118. package/package.json +2 -2
@@ -16,57 +16,230 @@ exports.RoleService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const typeorm_1 = require("@nestjs/typeorm");
18
18
  const typeorm_2 = require("typeorm");
19
+ const auth_config_service_1 = require("../../core/services/auth-config.service");
20
+ const auth_constants_1 = require("../../auth.constants");
21
+ const permission_entity_1 = require("../../permission/entities/permission.entity");
22
+ const utils_1 = require("../../utils");
19
23
  const role_entity_1 = require("../entities/role.entity");
20
- const tenant_1 = require("../../tenant");
24
+ const role_permission_entity_1 = require("../entities/role-permission.entity");
25
+ const role_mapper_util_1 = require("../utils/role-mapper.util");
21
26
  let RoleService = class RoleService {
22
27
  roleRepository;
23
- tenantService;
24
- constructor(roleRepository, tenantService) {
28
+ dataSource;
29
+ authConfigService;
30
+ constructor(roleRepository, dataSource, authConfigService) {
25
31
  this.roleRepository = roleRepository;
26
- this.tenantService = tenantService;
32
+ this.dataSource = dataSource;
33
+ this.authConfigService = authConfigService;
27
34
  }
28
- async createRole(name, guard, tenantId = null, isSystem = false, permissionIds) {
29
- const role = await role_entity_1.NestAuthRole.createRole(name, guard, isSystem, tenantId);
30
- if (permissionIds) {
31
- await role.syncPermissions(permissionIds);
35
+ getDefaultRoleGuard() {
36
+ return this.authConfigService.getRoleGuards()[0] ?? auth_constants_1.DEFAULT_GUARD_NAME;
37
+ }
38
+ getRoleRelations(includeTenant = true) {
39
+ const relations = ['rolePermissions', 'rolePermissions.permission'];
40
+ if (includeTenant) {
41
+ relations.push('tenant');
42
+ }
43
+ return relations;
44
+ }
45
+ resolveAndValidateGuard(guard) {
46
+ const resolved = guard ?? this.getDefaultRoleGuard();
47
+ if (!this.authConfigService.isRoleGuardAllowed(resolved)) {
48
+ throw new common_1.BadRequestException({
49
+ message: `Guard '${resolved}' is not allowed. Allowed guards: ${this.authConfigService.getRoleGuards().join(', ')}`,
50
+ code: auth_constants_1.GUARD_ERROR_CODES.GUARD_NOT_ALLOWED,
51
+ });
52
+ }
53
+ return resolved;
54
+ }
55
+ normalizePermissionNames(permissionNames) {
56
+ if (permissionNames === undefined || permissionNames === null) {
57
+ return [];
58
+ }
59
+ const values = Array.isArray(permissionNames) ? permissionNames : [permissionNames];
60
+ const normalized = [];
61
+ const seen = new Set();
62
+ for (const value of values) {
63
+ const name = value?.trim();
64
+ if (!name || seen.has(name)) {
65
+ continue;
66
+ }
67
+ seen.add(name);
68
+ normalized.push(name);
69
+ }
70
+ return normalized;
71
+ }
72
+ buildRoleConflictMessage(name, guard, tenantId) {
73
+ const scope = tenantId ? `tenant '${tenantId}'` : 'global scope';
74
+ return `Role with name '${name}' already exists in guard '${guard}' for ${scope}`;
75
+ }
76
+ async ensureRoleIsUnique(manager, params) {
77
+ const existingRole = await manager
78
+ .getRepository(role_entity_1.NestAuthRole)
79
+ .createQueryBuilder('role')
80
+ .where('role.name = :name', { name: params.name })
81
+ .andWhere('role.guard = :guard', { guard: params.guard })
82
+ .andWhere(new typeorm_2.Brackets((qb) => {
83
+ qb.where('role.tenantId IS NULL');
84
+ if (params.tenantId) {
85
+ qb.orWhere('role.tenantId = :tenantId', { tenantId: params.tenantId });
86
+ }
87
+ }))
88
+ .getOne();
89
+ if (existingRole && existingRole.id !== params.id) {
90
+ throw new common_1.ConflictException({
91
+ message: this.buildRoleConflictMessage(params.name, params.guard, params.tenantId),
92
+ code: 'ROLE_ALREADY_EXISTS',
93
+ });
32
94
  }
33
- await this.roleRepository.save(role);
34
- return role;
95
+ }
96
+ async resolvePermissionsByNames(manager, permissionNames, roleGuard) {
97
+ const normalizedNames = this.normalizePermissionNames(permissionNames);
98
+ if (!normalizedNames.length) {
99
+ return [];
100
+ }
101
+ const permissionRepo = manager.getRepository(permission_entity_1.NestAuthPermission);
102
+ const matchingPermissions = await permissionRepo
103
+ .createQueryBuilder('permission')
104
+ .where('permission.guard = :guard', { guard: roleGuard })
105
+ .andWhere('permission.name IN (:...names)', { names: normalizedNames })
106
+ .getMany();
107
+ const matchingPermissionsByName = new Map(matchingPermissions.map((permission) => [permission.name, permission]));
108
+ const missingNames = normalizedNames.filter((name) => !matchingPermissionsByName.has(name));
109
+ if (!missingNames.length) {
110
+ return normalizedNames
111
+ .map((name) => matchingPermissionsByName.get(name))
112
+ .filter(Boolean);
113
+ }
114
+ const permissionsWithOtherGuards = await permissionRepo
115
+ .createQueryBuilder('permission')
116
+ .where('permission.name IN (:...names)', { names: missingNames })
117
+ .getMany();
118
+ const guardMismatchMap = new Map();
119
+ for (const permission of permissionsWithOtherGuards) {
120
+ const guards = guardMismatchMap.get(permission.name) ?? new Set();
121
+ guards.add(permission.guard);
122
+ guardMismatchMap.set(permission.name, guards);
123
+ }
124
+ const guardMismatchNames = missingNames.filter((name) => guardMismatchMap.has(name));
125
+ const invalidNames = missingNames.filter((name) => !guardMismatchMap.has(name));
126
+ const errors = [];
127
+ if (guardMismatchNames.length) {
128
+ const details = guardMismatchNames
129
+ .map((name) => `${name} [${Array.from(guardMismatchMap.get(name) ?? []).sort().join(', ')}]`)
130
+ .join(', ');
131
+ errors.push(`Guard mismatch for permissions: ${details}. Expected guard '${roleGuard}'`);
132
+ }
133
+ if (invalidNames.length) {
134
+ errors.push(`Unknown permissions: ${invalidNames.join(', ')}`);
135
+ }
136
+ throw new common_1.BadRequestException({
137
+ message: errors.join('. '),
138
+ code: 'ROLE_PERMISSION_VALIDATION_FAILED',
139
+ invalidPermissions: invalidNames,
140
+ guardMismatches: guardMismatchNames.map((name) => ({
141
+ name,
142
+ guards: Array.from(guardMismatchMap.get(name) ?? []).sort(),
143
+ })),
144
+ });
145
+ }
146
+ async replaceRolePermissions(manager, roleId, permissions) {
147
+ const rolePermissionRepo = manager.getRepository(role_permission_entity_1.NestAuthRolePermission);
148
+ await rolePermissionRepo.delete({ roleId });
149
+ if (!permissions.length) {
150
+ return;
151
+ }
152
+ const rolePermissions = permissions.map((permission) => rolePermissionRepo.create({
153
+ roleId,
154
+ permissionId: permission.id,
155
+ }));
156
+ await rolePermissionRepo.save(rolePermissions);
157
+ }
158
+ async getHydratedRole(manager, id, includeTenant = true) {
159
+ return manager.getRepository(role_entity_1.NestAuthRole).findOne({
160
+ where: { id },
161
+ relations: this.getRoleRelations(includeTenant),
162
+ });
163
+ }
164
+ async createRole(name, guard, tenantId = null, isSystem = false, permissionNames, isActive = true) {
165
+ const normalizedName = name?.trim();
166
+ if (!normalizedName) {
167
+ throw new common_1.BadRequestException({
168
+ message: 'Role name is required',
169
+ code: 'ROLE_NAME_REQUIRED',
170
+ });
171
+ }
172
+ const resolvedGuard = this.resolveAndValidateGuard(guard);
173
+ const normalizedTenantId = tenantId?.trim() || null;
174
+ const roleTenantId = isSystem ? null : normalizedTenantId;
175
+ return this.dataSource.transaction(async (manager) => {
176
+ await this.ensureRoleIsUnique(manager, {
177
+ name: normalizedName,
178
+ guard: resolvedGuard,
179
+ tenantId: roleTenantId,
180
+ });
181
+ const resolvedPermissions = await this.resolvePermissionsByNames(manager, permissionNames, resolvedGuard);
182
+ const role = manager.getRepository(role_entity_1.NestAuthRole).create({
183
+ name: normalizedName,
184
+ guard: resolvedGuard,
185
+ tenantId: roleTenantId,
186
+ isSystem,
187
+ isActive,
188
+ });
189
+ let savedRole;
190
+ try {
191
+ savedRole = await manager.getRepository(role_entity_1.NestAuthRole).save(role);
192
+ }
193
+ catch (error) {
194
+ if ((0, utils_1.isUniqueConstraintViolation)(error)) {
195
+ throw new common_1.ConflictException({
196
+ message: this.buildRoleConflictMessage(normalizedName, resolvedGuard, roleTenantId),
197
+ code: 'ROLE_ALREADY_EXISTS',
198
+ });
199
+ }
200
+ throw error;
201
+ }
202
+ await this.replaceRolePermissions(manager, savedRole.id, resolvedPermissions);
203
+ return this.getHydratedRole(manager, savedRole.id, true);
204
+ });
35
205
  }
36
206
  async getRoleById(id, options) {
37
207
  if (!id) {
38
208
  return null;
39
209
  }
40
- const role = await this.roleRepository.findOne({
210
+ return this.roleRepository.findOne({
41
211
  ...(options ? options : {}),
42
- where: { id }
212
+ where: { id },
213
+ relations: Array.isArray(options?.relations)
214
+ ? Array.from(new Set([...this.getRoleRelations(true), ...options.relations]))
215
+ : this.getRoleRelations(true),
43
216
  });
44
- if (!role) {
45
- return null;
46
- }
47
- return role;
48
217
  }
49
218
  async getRoleByName(name, guard, tenantId, options) {
219
+ const relations = Array.isArray(options?.relations)
220
+ ? Array.from(new Set([...this.getRoleRelations(true), ...options.relations]))
221
+ : this.getRoleRelations(true);
50
222
  const systemRole = await this.roleRepository.findOne({
51
223
  ...(options ? options : {}),
52
224
  where: {
53
225
  name,
54
226
  ...(guard ? { guard } : {}),
55
- isSystem: true
56
- }
227
+ isSystem: true,
228
+ },
229
+ relations,
57
230
  });
58
231
  if (systemRole) {
59
232
  return systemRole;
60
233
  }
61
- const role = await this.roleRepository.findOne({
234
+ return this.roleRepository.findOne({
62
235
  ...(options ? options : {}),
63
236
  where: {
64
237
  name,
65
238
  ...(guard ? { guard } : {}),
66
- ...(tenantId ? { tenantId } : { tenantId: (0, typeorm_2.IsNull)() })
67
- }
239
+ ...(tenantId ? { tenantId } : { tenantId: (0, typeorm_2.IsNull)() }),
240
+ },
241
+ relations,
68
242
  });
69
- return role;
70
243
  }
71
244
  async getSystemRoles(options) {
72
245
  return this.roleRepository.find({
@@ -74,157 +247,117 @@ let RoleService = class RoleService {
74
247
  where: {
75
248
  isSystem: true,
76
249
  tenantId: (0, typeorm_2.IsNull)(),
77
- ...(options?.where ? options.where : {})
78
250
  },
251
+ relations: Array.isArray(options?.relations)
252
+ ? Array.from(new Set([...this.getRoleRelations(true), ...options.relations]))
253
+ : this.getRoleRelations(true),
79
254
  order: {
80
- name: 'ASC'
81
- }
255
+ name: 'ASC',
256
+ },
82
257
  });
83
258
  }
84
259
  async getRoles(params = {}, options) {
85
- const { guard, onlyTenantRoles, onlySystemRoles } = params;
86
- let { tenantId } = params;
87
- const query = this.roleRepository.createQueryBuilder();
260
+ const { guard, onlyTenantRoles, onlySystemRoles, includeTenant } = params;
261
+ const { tenantId } = params;
262
+ const query = this.roleRepository.createQueryBuilder('role');
263
+ query
264
+ .leftJoinAndSelect('role.rolePermissions', 'rolePermission')
265
+ .leftJoinAndSelect('rolePermission.permission', 'permission')
266
+ .distinct(true);
88
267
  if (guard) {
89
- query.andWhere(`${query.alias}.guard = :guard`, { guard });
268
+ query.andWhere('role.guard = :guard', { guard });
90
269
  }
91
270
  if (onlySystemRoles) {
92
- query.andWhere(`${query.alias}.isSystem = :isSystem`, { isSystem: true });
271
+ query.andWhere('role.isSystem = :isSystem', { isSystem: true });
93
272
  }
94
273
  else if (onlyTenantRoles) {
95
274
  if (!tenantId) {
96
275
  return [];
97
276
  }
98
- query.andWhere(`${query.alias}.tenantId = :tenantId`, { tenantId });
277
+ query.andWhere('role.tenantId = :tenantId', { tenantId });
99
278
  }
100
- else {
101
- if (tenantId) {
102
- query.andWhere(new typeorm_2.Brackets(qb => {
103
- qb.where(`${query.alias}.tenantId = :tenantId`, { tenantId })
104
- .orWhere(`${query.alias}.isSystem = :isSystem`, { isSystem: true });
105
- }));
106
- }
107
- else {
108
- query.andWhere(`${query.alias}.isSystem = :isSystem`, { isSystem: true });
109
- }
279
+ else if (tenantId) {
280
+ query.andWhere(new typeorm_2.Brackets((qb) => {
281
+ qb.where('role.tenantId = :tenantId', { tenantId })
282
+ .orWhere('role.isSystem = :isSystem', { isSystem: true });
283
+ }));
110
284
  }
111
- if (options) {
112
- if (options.where) {
113
- query.andWhere(options.where);
114
- }
115
- if (options.order) {
116
- Object.entries(options.order).forEach(([key, value]) => {
117
- query.addOrderBy(`${query.alias}.${key}`, value);
118
- });
119
- }
285
+ if (includeTenant) {
286
+ query.leftJoinAndSelect('role.tenant', 'tenant');
287
+ }
288
+ if (options?.where) {
289
+ query.andWhere(options.where);
290
+ }
291
+ if (options?.order) {
292
+ Object.entries(options.order).forEach(([key, value]) => {
293
+ query.addOrderBy(`role.${key}`, value);
294
+ });
120
295
  }
121
296
  else {
122
- query.orderBy(`${query.alias}.name`, 'ASC');
297
+ query.orderBy('role.name', 'ASC');
123
298
  }
124
- query.take(1000);
125
299
  return query.getMany();
126
300
  }
127
301
  async updateRole(id, data) {
128
- const role = await this.getRoleById(id);
129
- if (!role) {
130
- throw new common_1.NotFoundException({
131
- message: `Role with ID ${id} not found`,
132
- code: 'ROLE_NOT_FOUND'
133
- });
134
- }
135
- delete data.tenantId;
136
- if (data.name !== undefined && data.name !== role.name) {
137
- const newName = data.name;
138
- const newGuard = data.guard !== undefined ? data.guard : role.guard;
139
- const newIsSystem = data.isSystem !== undefined ? data.isSystem : role.isSystem;
140
- const newTenantId = newIsSystem ? null : role.tenantId;
141
- const existingRole = await this.roleRepository.findOne({
142
- where: {
143
- name: newName,
144
- guard: newGuard,
145
- tenantId: newTenantId || (0, typeorm_2.IsNull)()
146
- }
147
- });
148
- if (existingRole && existingRole.id !== id) {
149
- throw new common_1.ConflictException({
150
- message: `Role with name '${newName}' already exists in guard '${newGuard}'${newTenantId ? ` for tenant '${newTenantId}'` : ''}`,
151
- code: 'ROLE_ALREADY_EXISTS'
302
+ return this.dataSource.transaction(async (manager) => {
303
+ const role = await this.getHydratedRole(manager, id, true);
304
+ if (!role) {
305
+ throw new common_1.NotFoundException({
306
+ message: `Role with ID ${id} not found`,
307
+ code: 'ROLE_NOT_FOUND',
152
308
  });
153
309
  }
154
- role.name = newName;
155
- }
156
- if (data.guard !== undefined && data.guard !== role.guard) {
157
- const newName = data.name !== undefined ? data.name : role.name;
158
- const newGuard = data.guard;
159
- const newIsSystem = data.isSystem !== undefined ? data.isSystem : role.isSystem;
160
- const newTenantId = newIsSystem ? null : role.tenantId;
161
- const existingRole = await this.roleRepository.findOne({
162
- where: {
163
- name: newName,
164
- guard: newGuard,
165
- tenantId: newTenantId || (0, typeorm_2.IsNull)()
166
- }
167
- });
168
- if (existingRole && existingRole.id !== id) {
169
- throw new common_1.ConflictException({
170
- message: `Role with name '${newName}' already exists in guard '${newGuard}'${newTenantId ? ` for tenant '${newTenantId}'` : ''}`,
171
- code: 'ROLE_ALREADY_EXISTS'
310
+ const nextName = data.name !== undefined ? data.name.trim() : role.name;
311
+ if (!nextName) {
312
+ throw new common_1.BadRequestException({
313
+ message: 'Role name is required',
314
+ code: 'ROLE_NAME_REQUIRED',
172
315
  });
173
316
  }
174
- role.guard = newGuard;
175
- }
176
- if (data.isSystem !== undefined && data.isSystem !== role.isSystem) {
177
- const newIsSystem = data.isSystem;
178
- const newName = data.name !== undefined ? data.name : role.name;
179
- const newGuard = data.guard !== undefined ? data.guard : role.guard;
180
- const newTenantId = newIsSystem ? null : role.tenantId;
181
- if (newIsSystem) {
182
- role.tenantId = null;
317
+ const shouldReplacePermissions = Object.prototype.hasOwnProperty.call(data, 'permissions');
318
+ const nextPermissionNames = shouldReplacePermissions
319
+ ? data.permissions
320
+ : (0, role_mapper_util_1.getRolePermissionNames)(role);
321
+ await this.ensureRoleIsUnique(manager, {
322
+ id,
323
+ name: nextName,
324
+ guard: role.guard,
325
+ tenantId: role.tenantId,
326
+ });
327
+ const resolvedPermissions = shouldReplacePermissions
328
+ ? await this.resolvePermissionsByNames(manager, nextPermissionNames, role.guard)
329
+ : [];
330
+ role.name = nextName;
331
+ if (data.isActive !== undefined) {
332
+ role.isActive = data.isActive;
333
+ }
334
+ try {
335
+ await manager.getRepository(role_entity_1.NestAuthRole).save(role);
183
336
  }
184
- else {
185
- if (!role.tenantId) {
186
- throw new common_1.BadRequestException({
187
- message: 'Cannot change system role to non-system role without a tenant. Please assign a tenant first.',
188
- code: 'SYSTEM_ROLE_TENANT_REQUIRED'
337
+ catch (error) {
338
+ if ((0, utils_1.isUniqueConstraintViolation)(error)) {
339
+ throw new common_1.ConflictException({
340
+ message: this.buildRoleConflictMessage(nextName, role.guard, role.tenantId),
341
+ code: 'ROLE_ALREADY_EXISTS',
189
342
  });
190
343
  }
344
+ throw error;
191
345
  }
192
- const existingRole = await this.roleRepository.findOne({
193
- where: {
194
- name: newName,
195
- guard: newGuard,
196
- tenantId: newTenantId || (0, typeorm_2.IsNull)()
197
- }
198
- });
199
- if (existingRole && existingRole.id !== id) {
200
- throw new common_1.ConflictException({
201
- message: `Role with name '${newName}' already exists in guard '${newGuard}'${newTenantId ? ` for tenant '${newTenantId}'` : ''}`,
202
- code: 'ROLE_ALREADY_EXISTS'
203
- });
346
+ if (shouldReplacePermissions) {
347
+ await this.replaceRolePermissions(manager, role.id, resolvedPermissions);
204
348
  }
205
- role.isSystem = newIsSystem;
206
- }
207
- const { name, guard, isSystem, tenantId, ...otherData } = data;
208
- Object.assign(role, otherData);
209
- return this.roleRepository.save(role);
349
+ return this.getHydratedRole(manager, role.id, true);
350
+ });
210
351
  }
211
- async updateRolePermissions(id, permissionIds) {
212
- const role = await this.getRoleById(id);
213
- if (!role) {
214
- throw new common_1.NotFoundException({
215
- message: `Role with ID ${id} not found`,
216
- code: 'ROLE_NOT_FOUND'
217
- });
218
- }
219
- await role.syncPermissions(permissionIds);
220
- return this.roleRepository.save(role);
352
+ async updateRolePermissions(id, permissionNames) {
353
+ return this.updateRole(id, { permissions: permissionNames });
221
354
  }
222
355
  async deleteRole(id) {
223
356
  const role = await this.getRoleById(id);
224
357
  if (!role) {
225
358
  throw new common_1.NotFoundException({
226
359
  message: `Role with ID ${id} not found`,
227
- code: 'ROLE_NOT_FOUND'
360
+ code: 'ROLE_NOT_FOUND',
228
361
  });
229
362
  }
230
363
  await this.roleRepository.remove(role);
@@ -235,6 +368,7 @@ exports.RoleService = RoleService = __decorate([
235
368
  (0, common_1.Injectable)(),
236
369
  __param(0, (0, typeorm_1.InjectRepository)(role_entity_1.NestAuthRole)),
237
370
  __metadata("design:paramtypes", [typeorm_2.Repository,
238
- tenant_1.TenantService])
371
+ typeorm_2.DataSource,
372
+ auth_config_service_1.AuthConfigService])
239
373
  ], RoleService);
240
374
  //# sourceMappingURL=role.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../../../src/lib/role/services/role.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../../../src/lib/role/services/role.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuG;AACvG,6CAAmD;AACnD,qCAAmH;AACnH,iFAA4E;AAC5E,yDAA6E;AAC7E,mFAAiF;AACjF,uCAA0D;AAC1D,yDAAuD;AACvD,+EAA4E;AAC5E,gEAAmE;AAI5D,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGR;IACA;IACA;IAJZ,YAEY,cAAwC,EACxC,UAAsB,EACtB,iBAAoC;QAFpC,mBAAc,GAAd,cAAc,CAA0B;QACxC,eAAU,GAAV,UAAU,CAAY;QACtB,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC5C,CAAC;IAEG,mBAAmB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,mCAAkB,CAAC;IAC3E,CAAC;IAEO,gBAAgB,CAAC,gBAAyB,IAAI;QAClD,MAAM,SAAS,GAAG,CAAC,iBAAiB,EAAE,4BAA4B,CAAC,CAAC;QACpE,IAAI,aAAa,EAAE,CAAC;YAChB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,uBAAuB,CAAC,KAAgC;QAC5D,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,4BAAmB,CAAC;gBAC1B,OAAO,EAAE,UAAU,QAAQ,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnH,IAAI,EAAE,kCAAiB,CAAC,iBAAiB;aAC5C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,wBAAwB,CAAC,eAAmC;QAChE,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC5D,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACpF,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACb,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,wBAAwB,CAAC,IAAY,EAAE,KAAa,EAAE,QAAuB;QACjF,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACjE,OAAO,mBAAmB,IAAI,8BAA8B,KAAK,SAAS,KAAK,EAAE,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC5B,OAAsB,EACtB,MAA6E;QAE7E,MAAM,YAAY,GAAG,MAAM,OAAO;aAC7B,aAAa,CAAC,0BAAY,CAAC;aAC3B,kBAAkB,CAAC,MAAM,CAAC;aAC1B,KAAK,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;aACjD,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;aACxD,QAAQ,CACL,IAAI,kBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;YAChB,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAClC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,EAAE,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC,CAAC,CACL;aACA,MAAM,EAAE,CAAC;QAEd,IAAI,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,0BAAiB,CAAC;gBACxB,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;gBAClF,IAAI,EAAE,qBAAqB;aAC9B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACnC,OAAsB,EACtB,eAA8C,EAC9C,SAAiB;QAEjB,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,sCAAkB,CAAC,CAAC;QACjE,MAAM,mBAAmB,GAAG,MAAM,cAAc;aAC3C,kBAAkB,CAAC,YAAY,CAAC;aAChC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aACxD,QAAQ,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;aACtE,OAAO,EAAE,CAAC;QAEf,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACrC,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CACzE,CAAC;QACF,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5F,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,eAAe;iBACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAClD,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,0BAA0B,GAAG,MAAM,cAAc;aAClD,kBAAkB,CAAC,YAAY,CAAC;aAChC,KAAK,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;aAChE,OAAO,EAAE,CAAC;QAEf,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;QACxD,KAAK,MAAM,UAAU,IAAI,0BAA0B,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAC1E,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,kBAAkB;iBAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC5F,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,mCAAmC,OAAO,qBAAqB,SAAS,GAAG,CAAC,CAAC;QAC7F,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,wBAAwB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,4BAAmB,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,mCAAmC;YACzC,kBAAkB,EAAE,YAAY;YAChC,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI;gBACJ,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;aAC9D,CAAC,CAAC;SACN,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAChC,OAAsB,EACtB,MAAc,EACd,WAAiC;QAEjC,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,+CAAsB,CAAC,CAAC;QAEzE,MAAM,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE5C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACnD,kBAAkB,CAAC,MAAM,CAAC;YACtB,MAAM;YACN,YAAY,EAAE,UAAU,CAAC,EAAE;SAC9B,CAAC,CACL,CAAC;QAEF,MAAM,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,eAAe,CACzB,OAAsB,EACtB,EAAU,EACV,gBAAyB,IAAI;QAE7B,OAAO,OAAO,CAAC,aAAa,CAAC,0BAAY,CAAC,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;SAClD,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,IAAY,EACZ,KAAgC,EAChC,WAA0B,IAAI,EAC9B,WAAoB,KAAK,EACzB,eAAmC,EACnC,WAAoB,IAAI;QAExB,MAAM,cAAc,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,4BAAmB,CAAC;gBAC1B,OAAO,EAAE,uBAAuB;gBAChC,IAAI,EAAE,oBAAoB;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAE1D,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACjD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,YAAY;aACzB,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAC5D,OAAO,EACP,eAAe,EACf,aAAa,CAChB,CAAC;YAEF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,0BAAY,CAAC,CAAC,MAAM,CAAC;gBACpD,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,YAAY;gBACtB,QAAQ;gBACR,QAAQ;aACX,CAAC,CAAC;YAEH,IAAI,SAAuB,CAAC;YAC5B,IAAI,CAAC;gBACD,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,0BAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,IAAA,mCAA2B,EAAC,KAAK,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,0BAAiB,CAAC;wBACxB,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC;wBACnF,IAAI,EAAE,qBAAqB;qBAC9B,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAE9E,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,OAAqD;QAC/E,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;gBACxC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7E,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,aAAa,CACf,IAAY,EACZ,KAAc,EACd,QAAiB,EACjB,OAAqD;QAErD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;YAC/C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,EAAE;gBACH,IAAI;gBACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,QAAQ,EAAE,IAAI;aACjB;YACD,SAAS;SACZ,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,EAAE;gBACH,IAAI;gBACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAA,gBAAM,GAAE,EAAE,CAAC;aACxD;YACD,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAsD;QACvE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,EAAE;gBACH,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAA,gBAAM,GAAE;aACrB;YACD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;gBACxC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7E,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE;gBACH,IAAI,EAAE,KAAK;aACd;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CACV,SAMI,EAAE,EACN,OAAuC;QAEvC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAC1E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE7D,KAAK;aACA,iBAAiB,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;aAC3D,iBAAiB,CAAC,2BAA2B,EAAE,YAAY,CAAC;aAC5D,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YAClB,KAAK,CAAC,QAAQ,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACd,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,QAAQ,CAAC,IAAI,kBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,EAAE,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC;qBAC9C,OAAO,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACnD,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,EAAE,KAAuB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,EAAU,EACV,IAAqB;QAErB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAE3D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,IAAI,0BAAiB,CAAC;oBACxB,OAAO,EAAE,gBAAgB,EAAE,YAAY;oBACvC,IAAI,EAAE,gBAAgB;iBACzB,CAAC,CAAC;YACP,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,MAAM,IAAI,4BAAmB,CAAC;oBAC1B,OAAO,EAAE,uBAAuB;oBAChC,IAAI,EAAE,oBAAoB;iBAC7B,CAAC,CAAC;YACP,CAAC;YAED,MAAM,wBAAwB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC3F,MAAM,mBAAmB,GAAG,wBAAwB;gBAChD,CAAC,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,IAAA,yCAAsB,EAAC,IAAI,CAAC,CAAC;YAEnC,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnC,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aAC1B,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,wBAAwB;gBAChD,CAAC,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC;gBAChF,CAAC,CAAC,EAAE,CAAC;YAET,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YAErB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,OAAO,CAAC,aAAa,CAAC,0BAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,IAAA,mCAA2B,EAAC,KAAK,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,0BAAiB,CAAC;wBACxB,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;wBAC3E,IAAI,EAAE,qBAAqB;qBAC9B,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,IAAI,wBAAwB,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC7E,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,EAAU,EAAE,eAAyB;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,0BAAiB,CAAC;gBACxB,OAAO,EAAE,gBAAgB,EAAE,YAAY;gBACvC,IAAI,EAAE,gBAAgB;aACzB,CAAC,CAAC;QACP,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACJ,CAAA;AA7bY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGJ,WAAA,IAAA,0BAAgB,EAAC,0BAAY,CAAC,CAAA;qCACP,oBAAU;QACd,oBAAU;QACH,uCAAiB;GALvC,WAAW,CA6bvB"}
@@ -0,0 +1,26 @@
1
+ import { NestAuthRole } from '../entities/role.entity';
2
+ export declare function getRolePermissionNames(role: Pick<NestAuthRole, 'rolePermissions'> | null | undefined): string[];
3
+ export declare function mapRoleToResponse(role: NestAuthRole & {
4
+ tenant?: {
5
+ id: string;
6
+ name: string;
7
+ slug: string;
8
+ };
9
+ }): {
10
+ id: string;
11
+ name: string;
12
+ guard: string;
13
+ isSystem: boolean;
14
+ isActive: boolean;
15
+ tenantId: string;
16
+ tenant: {
17
+ id: string;
18
+ name: string;
19
+ slug: string;
20
+ };
21
+ permissions: string[];
22
+ createdAt: Date;
23
+ updatedAt: Date;
24
+ };
25
+ export declare function mapRoleToSessionSnapshot(role: NestAuthRole): Partial<NestAuthRole>;
26
+ //# sourceMappingURL=role-mapper.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-mapper.util.d.ts","sourceRoot":"","sources":["../../../../src/lib/role/utils/role-mapper.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/D,MAAM,EAAE,CAWV;AAED,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,YAAY,GAAG;IAAE,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;;;;;;;;;;;;;;;EAc/E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CASlF"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRolePermissionNames = getRolePermissionNames;
4
+ exports.mapRoleToResponse = mapRoleToResponse;
5
+ exports.mapRoleToSessionSnapshot = mapRoleToSessionSnapshot;
6
+ function getRolePermissionNames(role) {
7
+ const permissions = new Set();
8
+ for (const rolePermission of role?.rolePermissions ?? []) {
9
+ const name = rolePermission?.permission?.name?.trim();
10
+ if (name) {
11
+ permissions.add(name);
12
+ }
13
+ }
14
+ return Array.from(permissions).sort((a, b) => a.localeCompare(b));
15
+ }
16
+ function mapRoleToResponse(role) {
17
+ return {
18
+ id: role.id,
19
+ name: role.name,
20
+ guard: role.guard,
21
+ isSystem: role.isSystem,
22
+ isActive: role.isActive,
23
+ tenantId: role.tenantId,
24
+ tenant: role.tenant ? { id: role.tenant.id, name: role.tenant.name, slug: role.tenant.slug } : undefined,
25
+ permissions: getRolePermissionNames(role),
26
+ createdAt: role.createdAt,
27
+ updatedAt: role.updatedAt,
28
+ };
29
+ }
30
+ function mapRoleToSessionSnapshot(role) {
31
+ return {
32
+ id: role.id,
33
+ name: role.name,
34
+ guard: role.guard,
35
+ tenantId: role.tenantId,
36
+ isSystem: role.isSystem,
37
+ isActive: role.isActive,
38
+ };
39
+ }
40
+ //# sourceMappingURL=role-mapper.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-mapper.util.js","sourceRoot":"","sources":["../../../../src/lib/role/utils/role-mapper.util.ts"],"names":[],"mappings":";;AAEA,wDAaC;AAED,8CAeC;AAED,4DASC;AAzCD,SAAgB,sBAAsB,CAClC,IAA8D;IAE9D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,cAAc,IAAI,IAAI,EAAE,eAAe,IAAI,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtD,IAAI,IAAI,EAAE,CAAC;YACP,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,iBAAiB,CAC7B,IAA4E;IAE5E,OAAO;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QACxG,WAAW,EAAE,sBAAsB,CAAC,IAAI,CAAC;QACzC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC5B,CAAC;AACN,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAAkB;IACvD,OAAO;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KAC1B,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/session/services/session-manager.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAI/D,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAMvD,qBACa,qBAAqB;IAG1B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAGxC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,kBAAkB,GAE7B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAKK,aAAa,CAAC,OAAO,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkCtB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,UAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAwB9E,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO3D,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO7D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAO7F,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOzC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQtF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAWrF,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA+B1D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAWnE,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAQ/C,kBAAkB;IAsBhC,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,SAAS;IASX,qBAAqB,CACvB,IAAI,EAAE,YAAY,EAClB,SAAS,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACtE,OAAO,CAAC,eAAe,CAAC;IAuCrB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAqBlE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAGvE"}
1
+ {"version":3,"file":"session-manager.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/session/services/session-manager.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAK/D,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAMvD,qBACa,qBAAqB;IAG1B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAGxC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,kBAAkB,GAE7B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAKK,aAAa,CAAC,OAAO,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkCtB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,UAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAwB9E,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO3D,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO7D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAO7F,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOzC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQtF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAWrF,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA+B1D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAWnE,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAQ/C,kBAAkB;IAsBhC,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,SAAS;IASX,qBAAqB,CACvB,IAAI,EAAE,YAAY,EAClB,SAAS,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACtE,OAAO,CAAC,eAAe,CAAC;IAuCrB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAqBlE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAGvE"}
@@ -21,6 +21,7 @@ const auth_config_service_1 = require("../../core/services/auth-config.service")
21
21
  const request_context_1 = require("../../request-context/request-context");
22
22
  const uuid_1 = require("uuid");
23
23
  const ms_1 = __importDefault(require("ms"));
24
+ const role_mapper_util_1 = require("../../role/utils/role-mapper.util");
24
25
  exports.SESSION_STORE = 'SESSION_STORE';
25
26
  exports.SESSION_REPOSITORY = 'SESSION_REPOSITORY';
26
27
  let SessionManagerService = class SessionManagerService {
@@ -204,7 +205,7 @@ let SessionManagerService = class SessionManagerService {
204
205
  let sessionData = {
205
206
  user,
206
207
  isMfaVerified,
207
- roles,
208
+ roles: roles.map((role) => (0, role_mapper_util_1.mapRoleToSessionSnapshot)(role)),
208
209
  permissions,
209
210
  tenantId,
210
211
  };