Actualización módulo rolePermission

This commit is contained in:
2026-07-10 16:30:18 +00:00
parent f2d4b25b5f
commit 65047dee90
5 changed files with 68 additions and 23 deletions

View File

@ -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"
})

View File

@ -10,5 +10,5 @@ export interface IRolePermission{
createdBy: Types.ObjectId;
updateBy: Types.ObjectId;
updatedBy: Types.ObjectId;
}

View File

@ -10,11 +10,13 @@ const rolePermissionSchema = new mongoose.Schema({
unique:true,
},
permissions:{
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",
}

View File

@ -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;
rolePermissionRouter.delete("/:id", authMiddleware, permissionMiddleware("role-permissions", "delete"), controller.delete);
export default rolePermissionRouter;

View File

@ -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