From 65047dee908ca2d5e6caaf2f097a4cef35c64802 Mon Sep 17 00:00:00 2001 From: karol Date: Fri, 10 Jul 2026 16:30:18 +0000 Subject: [PATCH] =?UTF-8?q?Actualizaci=C3=B3n=20m=C3=B3dulo=20rolePermissi?= =?UTF-8?q?on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rolePermission.controller.ts | 34 +++++++++++++++++-- .../rolePermission.interface.ts | 2 +- .../role-permissions/rolePermission.model.ts | 14 ++++---- .../role-permissions/rolePermission.router.ts | 26 ++++++++------ .../rolePermission.service.ts | 15 ++++++-- 5 files changed, 68 insertions(+), 23 deletions(-) diff --git a/backend/src/modules/role-permissions/rolePermission.controller.ts b/backend/src/modules/role-permissions/rolePermission.controller.ts index c9e6235..ca21b1e 100644 --- a/backend/src/modules/role-permissions/rolePermission.controller.ts +++ b/backend/src/modules/role-permissions/rolePermission.controller.ts @@ -68,6 +68,33 @@ export class RolePermissionController{ } } + async getPermissionByRole( + req: Request, + res: Response + ) { + + try { + + const permissions = await service.getPermissionByRole( + req.params.roleId as string + ); + + res.status(200).json(permissions); + + } catch (error: any) { + + res.status(500).json({ + + message: error.message, + + error + + }); + + } + + } + async create( req:Request, res:Response @@ -79,9 +106,10 @@ export class RolePermissionController{ res.status(201).json(rolePemission); - }catch(error){ + }catch(error:any){ res.status(500).json({ - message:"Error al crear configuración de permiso" + message: error.message, + error }); } } @@ -132,7 +160,7 @@ export class RolePermissionController{ }catch(error){ res.status(500).json({ - message:"Error al eliminar configuración de vehículo" + message:"Error al eliminar configuración de permisos" }) diff --git a/backend/src/modules/role-permissions/rolePermission.interface.ts b/backend/src/modules/role-permissions/rolePermission.interface.ts index b653583..c037a3d 100644 --- a/backend/src/modules/role-permissions/rolePermission.interface.ts +++ b/backend/src/modules/role-permissions/rolePermission.interface.ts @@ -10,5 +10,5 @@ export interface IRolePermission{ createdBy: Types.ObjectId; - updateBy: Types.ObjectId; + updatedBy: Types.ObjectId; } \ No newline at end of file diff --git a/backend/src/modules/role-permissions/rolePermission.model.ts b/backend/src/modules/role-permissions/rolePermission.model.ts index c0d5c76..f7de41c 100644 --- a/backend/src/modules/role-permissions/rolePermission.model.ts +++ b/backend/src/modules/role-permissions/rolePermission.model.ts @@ -10,11 +10,13 @@ const rolePermissionSchema = new mongoose.Schema({ unique:true, }, - permissions:{ - type: mongoose.Schema.Types.ObjectId, - ref:"Permission", - required:true - }, + permissions:[ + { + type: mongoose.Schema.Types.ObjectId, + ref:"Permission", + required:true + } + ], active:{ type:Boolean, @@ -27,7 +29,7 @@ const rolePermissionSchema = new mongoose.Schema({ required:true }, - updateBy:{ + updatedBy:{ type: mongoose.Schema.Types.ObjectId, ref:"User", } diff --git a/backend/src/modules/role-permissions/rolePermission.router.ts b/backend/src/modules/role-permissions/rolePermission.router.ts index a7e477d..245dd0a 100644 --- a/backend/src/modules/role-permissions/rolePermission.router.ts +++ b/backend/src/modules/role-permissions/rolePermission.router.ts @@ -1,21 +1,27 @@ import { Router } from "express"; -import { RolePermissionController } from "./rolePermission.controller"; -import { authMiddleware } from "../auth/auth.middleware"; -const rolePermissionRoute = Router(); +import { RolePermissionController } from "./rolePermission.controller"; + +import { authMiddleware } from "../auth/auth.middleware"; +import { permissionMiddleware } from "../auth/permission.middleware"; + + +const rolePermissionRouter = Router(); const controller = new RolePermissionController(); -rolePermissionRoute.get("/", authMiddleware, controller.getAll); +rolePermissionRouter.get("/", authMiddleware, permissionMiddleware("role-permissions", "read"), controller.getAll); -rolePermissionRoute.get("/role/:roleId", authMiddleware, controller.getByRole); +rolePermissionRouter.get("/role/:roleId", authMiddleware, permissionMiddleware("role-permissions", "read"), controller.getByRole); -rolePermissionRoute.get("/:id", authMiddleware, controller.getById); +rolePermissionRouter.get("/permissions/:roleId", authMiddleware, permissionMiddleware("role-permissions", "read"), controller.getPermissionByRole); -rolePermissionRoute.post("/", authMiddleware, controller.create); +rolePermissionRouter.get("/:id", authMiddleware, permissionMiddleware("role-permissions", "read"), controller.getById); -rolePermissionRoute.put("/:id", authMiddleware, controller.update); +rolePermissionRouter.post("/", authMiddleware, /*permissionMiddleware("role-permissions", "create"),*/ controller.create); -rolePermissionRoute.delete("/:id", authMiddleware, controller.delete); +rolePermissionRouter.put("/:id", authMiddleware, permissionMiddleware("role-permissions", "update"), controller.update); -export default rolePermissionRoute; \ No newline at end of file +rolePermissionRouter.delete("/:id", authMiddleware, permissionMiddleware("role-permissions", "delete"), controller.delete); + +export default rolePermissionRouter; \ No newline at end of file diff --git a/backend/src/modules/role-permissions/rolePermission.service.ts b/backend/src/modules/role-permissions/rolePermission.service.ts index e883b1e..3646451 100644 --- a/backend/src/modules/role-permissions/rolePermission.service.ts +++ b/backend/src/modules/role-permissions/rolePermission.service.ts @@ -1,4 +1,5 @@ import rolePermissionModel from "./rolePermission.model"; +import roleModel from "../roles/role.model"; import { IRolePermission } from "./rolePermission.interface"; export class RolePermissionService { @@ -40,11 +41,10 @@ export class RolePermissionService { active: true }) + .populate("createdBy","userName") + .populate("updatedBy","userName") .populate("roleId") .populate("permissions") - .populate("createdBy", "userName") - .populate("updatedBy", "userName"); - } async getPermissionByRole( @@ -70,6 +70,15 @@ export class RolePermissionService { data: IRolePermission ) { + const role = await roleModel.findById( + data.roleId + ); + + if(!role){ + + throw new Error("El rol no existe."); + + } const exists = await rolePermissionModel.findOne({ roleId: data.roleId