feat(usuarios): supervisor puede invitar usuarios cliente
- Backend inviteUsuario: permite owner, cfo y supervisor - Backend valida que supervisor solo pueda invitar rol cliente - Backend addClienteAcceso: supervisor solo puede asignar contribuyentes que tenga visibles (getEntidadesVisibles) - Frontend: supervisor ve botón Invitar Usuario y solo puede seleccionar rol Cliente en el dropdown
This commit is contained in:
@@ -65,11 +65,16 @@ export async function getAllUsuarios(req: Request, res: Response, next: NextFunc
|
||||
|
||||
export async function inviteUsuario(req: Request, res: Response, next: NextFunction) {
|
||||
try {
|
||||
if (req.user!.role !== 'owner') {
|
||||
throw new AppError(403, 'Solo los dueños pueden invitar usuarios');
|
||||
if (!['owner', 'cfo', 'supervisor'].includes(req.user!.role)) {
|
||||
throw new AppError(403, 'No autorizado para invitar usuarios');
|
||||
}
|
||||
const data = inviteSchema.parse(req.body);
|
||||
|
||||
// Los supervisores solo pueden invitar clientes
|
||||
if (req.user!.role === 'supervisor' && data.role !== 'cliente') {
|
||||
throw new AppError(403, 'Los supervisores solo pueden invitar clientes');
|
||||
}
|
||||
|
||||
// Validate: auxiliar requires a supervisor
|
||||
if (data.role === 'auxiliar' && !data.supervisorUserId) {
|
||||
throw new AppError(400, 'Debes asignar un supervisor al auxiliar');
|
||||
|
||||
Reference in New Issue
Block a user