fix npm run build
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.RoleAssignPermissionHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const role_interface_1 = require("../../../domain/repositories/role.interface");
|
||||
const permission_interface_1 = require("../../../domain/repositories/permission.interface");
|
||||
const authorization_service_1 = require("../../../../authorization/authorization.service");
|
||||
const event_bus_service_1 = require("../../../../../core/event-bus/event-bus.service");
|
||||
let RoleAssignPermissionHandler = class RoleAssignPermissionHandler {
|
||||
roleRepository;
|
||||
permissionRepository;
|
||||
authorizationService;
|
||||
events;
|
||||
constructor(roleRepository, permissionRepository, authorizationService, events) {
|
||||
this.roleRepository = roleRepository;
|
||||
this.permissionRepository = permissionRepository;
|
||||
this.authorizationService = authorizationService;
|
||||
this.events = events;
|
||||
}
|
||||
async execute(roleId, permissionId) {
|
||||
const role = await this.roleRepository.findById(roleId);
|
||||
if (!role)
|
||||
throw new common_1.NotFoundException('Role not found.');
|
||||
const perm = await this.permissionRepository.getById(permissionId);
|
||||
if (!perm)
|
||||
throw new common_1.NotFoundException('Permission not found.');
|
||||
role.assignPermission(perm);
|
||||
const updated = await this.roleRepository.update(role);
|
||||
// Invalidate permissions cache for users who have this role
|
||||
const userIds = await this.roleRepository.getAssignedUserIds(roleId);
|
||||
for (const uid of userIds) {
|
||||
await this.authorizationService.invalidateUserPermissions(uid);
|
||||
}
|
||||
// Publish role.updated event
|
||||
this.events.publish({ id: require('crypto').randomUUID(), timestamp: new Date().toISOString(), type: 'RoleUpdated', payload: { roleId, permissionId } });
|
||||
return updated;
|
||||
}
|
||||
};
|
||||
exports.RoleAssignPermissionHandler = RoleAssignPermissionHandler;
|
||||
exports.RoleAssignPermissionHandler = RoleAssignPermissionHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [role_interface_1.IRole,
|
||||
permission_interface_1.IPermission,
|
||||
authorization_service_1.AuthorizationService,
|
||||
event_bus_service_1.EventBus])
|
||||
], RoleAssignPermissionHandler);
|
||||
//# sourceMappingURL=assign-permission.handler.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"assign-permission.handler.js","sourceRoot":"","sources":["../../../../../../src/modules/identity/application/handlers/role/assign-permission.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAuE;AACvE,gFAAoE;AACpE,4FAAgF;AAChF,2FAAuF;AACvF,uFAA2E;AAGpE,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEnB;IACA;IACA;IACA;IAJnB,YACmB,cAAqB,EACrB,oBAAiC,EACjC,oBAA0C,EAC1C,MAAgB;QAHhB,mBAAc,GAAd,cAAc,CAAO;QACrB,yBAAoB,GAApB,oBAAoB,CAAa;QACjC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,WAAM,GAAN,MAAM,CAAU;IAChC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,uBAAuB,CAAC,CAAC;QAEhE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvD,4DAA4D;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAEzJ,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AA9BY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAGwB,sBAAK;QACC,kCAAW;QACX,4CAAoB;QAClC,4BAAQ;GALxB,2BAA2B,CA8BvC"}
|
||||
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CreateRoleHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const role_interface_1 = require("../../../domain/repositories/role.interface");
|
||||
const role_entity_1 = require("../../../domain/entities/role.entity");
|
||||
const event_bus_service_1 = require("../../../../../core/event-bus/event-bus.service");
|
||||
const crypto = require('crypto');
|
||||
let CreateRoleHandler = class CreateRoleHandler {
|
||||
roleRepository;
|
||||
events;
|
||||
constructor(roleRepository, events) {
|
||||
this.roleRepository = roleRepository;
|
||||
this.events = events;
|
||||
}
|
||||
async execute(dto) {
|
||||
// basic validation
|
||||
if (!dto.code || !dto.name)
|
||||
throw new common_1.ConflictException('Missing required fields');
|
||||
try {
|
||||
const role = role_entity_1.RoleData.restore({
|
||||
id: crypto.randomUUID(),
|
||||
code: dto.code,
|
||||
name: dto.name,
|
||||
description: dto.description || '',
|
||||
permissions: [],
|
||||
isDefault: dto.isDefault || false,
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
});
|
||||
const created = await this.roleRepository.create(role);
|
||||
this.events.publish({ id: require('crypto').randomUUID(), timestamp: new Date().toISOString(), type: 'RoleCreated', payload: { roleId: created.id } });
|
||||
return created;
|
||||
}
|
||||
catch (e) {
|
||||
throw new common_1.ConflictException('Role creation failed.');
|
||||
}
|
||||
}
|
||||
};
|
||||
exports.CreateRoleHandler = CreateRoleHandler;
|
||||
exports.CreateRoleHandler = CreateRoleHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [role_interface_1.IRole, event_bus_service_1.EventBus])
|
||||
], CreateRoleHandler);
|
||||
//# sourceMappingURL=create-role.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"create-role.handler.js","sourceRoot":"","sources":["../../../../../../src/modules/identity/application/handlers/role/create-role.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAC/D,gFAAoE;AACpE,sEAAgE;AAChE,uFAA2E;AAE3E,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAG1B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAAwC;IAArE,YAA6B,cAAqB,EAAmB,MAAgB;QAAxD,mBAAc,GAAd,cAAc,CAAO;QAAmB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAEzF,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,mBAAmB;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,yBAAyB,CAAC,CAAC;QAEnF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,sBAAQ,CAAC,OAAO,CAAC;gBAC5B,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;gBAClC,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,KAAK;gBACjC,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;aACf,CAAC,CAAC;YAEV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEvJ,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,uBAAuB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF,CAAA;AA5BY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEkC,sBAAK,EAA2B,4BAAQ;GAD1E,iBAAiB,CA4B7B"}
|
||||
@@ -0,0 +1,45 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.DeleteRoleHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const role_interface_1 = require("../../../domain/repositories/role.interface");
|
||||
const authorization_service_1 = require("../../../../authorization/authorization.service");
|
||||
const event_bus_service_1 = require("../../../../../core/event-bus/event-bus.service");
|
||||
let DeleteRoleHandler = class DeleteRoleHandler {
|
||||
roleRepository;
|
||||
authorizationService;
|
||||
events;
|
||||
constructor(roleRepository, authorizationService, events) {
|
||||
this.roleRepository = roleRepository;
|
||||
this.authorizationService = authorizationService;
|
||||
this.events = events;
|
||||
}
|
||||
async execute(id) {
|
||||
const role = await this.roleRepository.findById(id);
|
||||
if (!role)
|
||||
throw new common_1.NotFoundException('Role not found.');
|
||||
// get affected users before delete
|
||||
const userIds = await this.roleRepository.getAssignedUserIds(id);
|
||||
await this.roleRepository.delete(id);
|
||||
// invalidate caches
|
||||
for (const uid of userIds)
|
||||
await this.authorizationService.invalidateUserPermissions(uid);
|
||||
this.events.publish({ id: require('crypto').randomUUID(), timestamp: new Date().toISOString(), type: 'RoleDeleted', payload: { roleId: id } });
|
||||
return;
|
||||
}
|
||||
};
|
||||
exports.DeleteRoleHandler = DeleteRoleHandler;
|
||||
exports.DeleteRoleHandler = DeleteRoleHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [role_interface_1.IRole, authorization_service_1.AuthorizationService, event_bus_service_1.EventBus])
|
||||
], DeleteRoleHandler);
|
||||
//# sourceMappingURL=delete-role.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"delete-role.handler.js","sourceRoot":"","sources":["../../../../../../src/modules/identity/application/handlers/role/delete-role.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAC/D,gFAAoE;AACpE,2FAAuF;AACvF,uFAA2E;AAGpE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAAwC;IAA6D;IAAlI,YAA6B,cAAqB,EAAmB,oBAA0C,EAAmB,MAAgB;QAArH,mBAAc,GAAd,cAAc,CAAO;QAAmB,yBAAoB,GAApB,oBAAoB,CAAsB;QAAmB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAEtJ,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,mCAAmC;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAErC,oBAAoB;QACpB,KAAK,MAAM,GAAG,IAAI,OAAO;YAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAE1F,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE/I,OAAO;IACT,CAAC;CACF,CAAA;AAnBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEkC,sBAAK,EAAyC,4CAAoB,EAA2B,4BAAQ;GADvI,iBAAiB,CAmB7B"}
|
||||
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.GetRoleHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const role_interface_1 = require("../../../domain/repositories/role.interface");
|
||||
let GetRoleHandler = class GetRoleHandler {
|
||||
roleRepository;
|
||||
constructor(roleRepository) {
|
||||
this.roleRepository = roleRepository;
|
||||
}
|
||||
async execute(id) {
|
||||
return this.roleRepository.findById(id);
|
||||
}
|
||||
};
|
||||
exports.GetRoleHandler = GetRoleHandler;
|
||||
exports.GetRoleHandler = GetRoleHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [role_interface_1.IRole])
|
||||
], GetRoleHandler);
|
||||
//# sourceMappingURL=get-role.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"get-role.handler.js","sourceRoot":"","sources":["../../../../../../src/modules/identity/application/handlers/role/get-role.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gFAAoE;AAG7D,IAAM,cAAc,GAApB,MAAM,cAAc;IACI;IAA7B,YAA6B,cAAqB;QAArB,mBAAc,GAAd,cAAc,CAAO;IAAG,CAAC;IAEtD,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AANY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEkC,sBAAK;GADvC,cAAc,CAM1B"}
|
||||
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.GetRolesHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const role_interface_1 = require("../../../domain/repositories/role.interface");
|
||||
let GetRolesHandler = class GetRolesHandler {
|
||||
roleRepository;
|
||||
constructor(roleRepository) {
|
||||
this.roleRepository = roleRepository;
|
||||
}
|
||||
async execute(query) {
|
||||
return this.roleRepository.find({ page: query.page, limit: query.limit, search: query.search || null });
|
||||
}
|
||||
};
|
||||
exports.GetRolesHandler = GetRolesHandler;
|
||||
exports.GetRolesHandler = GetRolesHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [role_interface_1.IRole])
|
||||
], GetRolesHandler);
|
||||
//# sourceMappingURL=get-roles.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"get-roles.handler.js","sourceRoot":"","sources":["../../../../../../src/modules/identity/application/handlers/role/get-roles.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gFAAoE;AAG7D,IAAM,eAAe,GAArB,MAAM,eAAe;IACG;IAA7B,YAA6B,cAAqB;QAArB,mBAAc,GAAd,cAAc,CAAO;IAAG,CAAC;IAEtD,KAAK,CAAC,OAAO,CAAC,KAAyD;QACrE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1G,CAAC;CACF,CAAA;AANY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEkC,sBAAK;GADvC,eAAe,CAM3B"}
|
||||
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.RoleRemovePermissionHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const role_interface_1 = require("../../../domain/repositories/role.interface");
|
||||
const authorization_service_1 = require("../../../../authorization/authorization.service");
|
||||
const event_bus_service_1 = require("../../../../../core/event-bus/event-bus.service");
|
||||
let RoleRemovePermissionHandler = class RoleRemovePermissionHandler {
|
||||
roleRepository;
|
||||
authorizationService;
|
||||
events;
|
||||
constructor(roleRepository, authorizationService, events) {
|
||||
this.roleRepository = roleRepository;
|
||||
this.authorizationService = authorizationService;
|
||||
this.events = events;
|
||||
}
|
||||
async execute(roleId, permissionId) {
|
||||
const role = await this.roleRepository.findById(roleId);
|
||||
if (!role)
|
||||
throw new common_1.NotFoundException('Role not found.');
|
||||
role.removePermission(permissionId);
|
||||
const updated = await this.roleRepository.update(role);
|
||||
// Invalidate caches for users with the role
|
||||
const userIds = await this.roleRepository.getAssignedUserIds(roleId);
|
||||
for (const uid of userIds)
|
||||
await this.authorizationService.invalidateUserPermissions(uid);
|
||||
// Publish event
|
||||
this.events.publish({ id: require('crypto').randomUUID(), timestamp: new Date().toISOString(), type: 'RoleUpdated', payload: { roleId, removedPermissionId: permissionId } });
|
||||
return updated;
|
||||
}
|
||||
};
|
||||
exports.RoleRemovePermissionHandler = RoleRemovePermissionHandler;
|
||||
exports.RoleRemovePermissionHandler = RoleRemovePermissionHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [role_interface_1.IRole, authorization_service_1.AuthorizationService, event_bus_service_1.EventBus])
|
||||
], RoleRemovePermissionHandler);
|
||||
//# sourceMappingURL=remove-permission.handler.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"remove-permission.handler.js","sourceRoot":"","sources":["../../../../../../src/modules/identity/application/handlers/role/remove-permission.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAC/D,gFAAoE;AACpE,2FAAuF;AACvF,uFAA2E;AAGpE,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACT;IAAwC;IAA6D;IAAlI,YAA6B,cAAqB,EAAmB,oBAA0C,EAAmB,MAAgB;QAArH,mBAAc,GAAd,cAAc,CAAO;QAAmB,yBAAoB,GAApB,oBAAoB,CAAsB;QAAmB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAEtJ,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,YAAoB;QAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvD,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,OAAO;YAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAE1F,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAE9K,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AApBY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAEkC,sBAAK,EAAyC,4CAAoB,EAA2B,4BAAQ;GADvI,2BAA2B,CAoBvC"}
|
||||
@@ -0,0 +1,53 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UpdateRoleHandler = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const role_interface_1 = require("../../../domain/repositories/role.interface");
|
||||
const authorization_service_1 = require("../../../../authorization/authorization.service");
|
||||
const event_bus_service_1 = require("../../../../../core/event-bus/event-bus.service");
|
||||
let UpdateRoleHandler = class UpdateRoleHandler {
|
||||
roleRepository;
|
||||
authorizationService;
|
||||
events;
|
||||
constructor(roleRepository, authorizationService, events) {
|
||||
this.roleRepository = roleRepository;
|
||||
this.authorizationService = authorizationService;
|
||||
this.events = events;
|
||||
}
|
||||
async execute(id, dto) {
|
||||
const role = await this.roleRepository.findById(id);
|
||||
if (!role)
|
||||
throw new common_1.NotFoundException('Role not found.');
|
||||
// validation
|
||||
if (dto.name && dto.name.length < 2)
|
||||
throw new common_1.BadRequestException('Name too short');
|
||||
if (dto.name)
|
||||
role.changeName(dto.name);
|
||||
if (dto.description !== undefined)
|
||||
role.changeDescription(dto.description);
|
||||
if (dto.isDefault !== undefined)
|
||||
role.setDefault(!!dto.isDefault);
|
||||
const updated = await this.roleRepository.update(role);
|
||||
// invalidate caches for users with this role
|
||||
const userIds = await this.roleRepository.getAssignedUserIds(id);
|
||||
for (const uid of userIds)
|
||||
await this.authorizationService.invalidateUserPermissions(uid);
|
||||
this.events.publish({ id: require('crypto').randomUUID(), timestamp: new Date().toISOString(), type: 'RoleUpdated', payload: { roleId: id } });
|
||||
return updated;
|
||||
}
|
||||
};
|
||||
exports.UpdateRoleHandler = UpdateRoleHandler;
|
||||
exports.UpdateRoleHandler = UpdateRoleHandler = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [role_interface_1.IRole, authorization_service_1.AuthorizationService, event_bus_service_1.EventBus])
|
||||
], UpdateRoleHandler);
|
||||
//# sourceMappingURL=update-role.handler.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"update-role.handler.js","sourceRoot":"","sources":["../../../../../../src/modules/identity/application/handlers/role/update-role.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoF;AACpF,gFAAoE;AACpE,2FAAuF;AACvF,uFAA2E;AAGpE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAAwC;IAA6D;IAAlI,YAA6B,cAAqB,EAAmB,oBAA0C,EAAmB,MAAgB;QAArH,mBAAc,GAAd,cAAc,CAAO;QAAmB,yBAAoB,GAApB,oBAAoB,CAAsB;QAAmB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAEtJ,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,GAAQ;QAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,aAAa;QACb,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;QAErF,IAAI,GAAG,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAElE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvD,6CAA6C;QAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,GAAG,IAAI,OAAO;YAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAE1F,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE/I,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAxBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEkC,sBAAK,EAAyC,4CAAoB,EAA2B,4BAAQ;GADvI,iBAAiB,CAwB7B"}
|
||||
Reference in New Issue
Block a user