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( async create(
req:Request, req:Request,
res:Response res:Response
@ -79,9 +106,10 @@ export class RolePermissionController{
res.status(201).json(rolePemission); res.status(201).json(rolePemission);
}catch(error){ }catch(error:any){
res.status(500).json({ 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){ }catch(error){
res.status(500).json({ 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; createdBy: Types.ObjectId;
updateBy: Types.ObjectId; updatedBy: Types.ObjectId;
} }

View File

@ -10,11 +10,13 @@ const rolePermissionSchema = new mongoose.Schema({
unique:true, unique:true,
}, },
permissions:{ permissions:[
type: mongoose.Schema.Types.ObjectId, {
ref:"Permission", type: mongoose.Schema.Types.ObjectId,
required:true ref:"Permission",
}, required:true
}
],
active:{ active:{
type:Boolean, type:Boolean,
@ -27,7 +29,7 @@ const rolePermissionSchema = new mongoose.Schema({
required:true required:true
}, },
updateBy:{ updatedBy:{
type: mongoose.Schema.Types.ObjectId, type: mongoose.Schema.Types.ObjectId,
ref:"User", ref:"User",
} }

View File

@ -1,21 +1,27 @@
import { Router } from "express"; 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(); 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 rolePermissionModel from "./rolePermission.model";
import roleModel from "../roles/role.model";
import { IRolePermission } from "./rolePermission.interface"; import { IRolePermission } from "./rolePermission.interface";
export class RolePermissionService { export class RolePermissionService {
@ -40,11 +41,10 @@ export class RolePermissionService {
active: true active: true
}) })
.populate("createdBy","userName")
.populate("updatedBy","userName")
.populate("roleId") .populate("roleId")
.populate("permissions") .populate("permissions")
.populate("createdBy", "userName")
.populate("updatedBy", "userName");
} }
async getPermissionByRole( async getPermissionByRole(
@ -70,6 +70,15 @@ export class RolePermissionService {
data: IRolePermission data: IRolePermission
) { ) {
const role = await roleModel.findById(
data.roleId
);
if(!role){
throw new Error("El rol no existe.");
}
const exists = await rolePermissionModel.findOne({ const exists = await rolePermissionModel.findOne({
roleId: data.roleId roleId: data.roleId