18 lines
646 B
TypeScript
18 lines
646 B
TypeScript
import { ForbiddenException } from '@nestjs/common';
|
|
import type { AuthPrincipal } from '../common/http/request-context';
|
|
|
|
export function assertMobileInspector(principal: AuthPrincipal): void {
|
|
if (principal.transport !== 'bearer') {
|
|
throw new ForbiddenException({
|
|
code: 'INSPECTION_MOBILE_APP_REQUIRED',
|
|
message: 'Esta operación sólo está disponible desde la aplicación móvil',
|
|
});
|
|
}
|
|
if (!principal.roles.includes('inspector')) {
|
|
throw new ForbiddenException({
|
|
code: 'INSPECTION_INSPECTOR_ROLE_REQUIRED',
|
|
message: 'Sólo un usuario con rol inspector puede realizar esta operación',
|
|
});
|
|
}
|
|
}
|