This commit is contained in:
TioSam77
2024-06-25 17:45:44 -06:00
2 changed files with 13 additions and 10 deletions
+4 -4
View File
@@ -6,12 +6,12 @@ import {RolesGuard} from '../permissions/roles.guard'
import {Role} from '../permissions/role.enum'
@Controller('profesor')
//@UseGuards(RolesGuard)
@UseGuards(RolesGuard)
export class ProfesorController {
constructor(private profesorService: ProfesorService) {}
@Post()
//@Roles(Role.Responsable,Role.Admin)
@Roles(Role.Responsable,Role.Admin)
async register(@Body() data: profesorDto) {
return this.profesorService.register(data);
}
@@ -30,13 +30,13 @@ export class ProfesorController {
}
@Put(':id_profesor')
//@Roles(Role.Responsable,Role.Admin)
@Roles(Role.Responsable,Role.Admin)
async postModify(@Param('id_profesor', ParseIntPipe) id_profesor: number, @Body() data: profesorDto) {
return this.profesorService.modify(id_profesor, data);
}
@Delete(':id_profesor')
//@Roles(Role.Responsable,Role.Admin)
@Roles(Role.Responsable,Role.Admin)
async remove(@Param('id_profesor', ParseIntPipe) id_profesor: number) {
return this.profesorService.remove(id_profesor);
}
+9 -6
View File
@@ -16,15 +16,18 @@ export class RolesGuard implements CanActivate {
]);
if (!requiredRoles) {
return true;
return true; // Si no hay roles requeridos, se permite el acceso
}
const { user } = context.switchToHttp().getRequest();
if (!user || !user.roles || user.roles.length === 0) {
return false;
const request = context.switchToHttp().getRequest();
const permissionsHeader = request.headers['permissions'];
if (!permissionsHeader) {
return false; // Si no hay encabezado 'permissions', se niega el acceso
}
return requiredRoles.some(role => user.roles.includes(role));
const userRoles: Role[] = JSON.parse(permissionsHeader);
return requiredRoles.some(role => userRoles.includes(role));
}
}