Core Docs
Backend

Permissões

Como a autorização por permissão e papel (role) funciona no backend.

@RequiresPermission

Endpoints são protegidos anotando o método do controller:

@RequiresPermission("candidate:delete")
@Delete("/{id}/trash")
public HttpResponse<Void> softDeleteCandidateById(@PathVariable UUID id) { ... }

A anotação é interceptada via AOP (PermissionInterceptor) e valida se o usuário autenticado possui a permissão informada, no formato <recurso>:<ação> (ex: client:read, vacancy:delete, user:update).

Papéis (roles)

Além de permissões granulares, existe o conceito de role (ex: ADMIN), usado principalmente no frontend para esconder/mostrar seções inteiras do menu (ver Sidebar no frontend).

Token

O token JWT emitido no login carrega permissions: string[] e roles: string[], decodificados no frontend para controlar o que é exibido na UI — mas a validação real de autorização acontece sempre no backend via @RequiresPermission.

On this page