Arquitetura & EngenhariaAutenticação
Permissões e Cargos
Como o sistema de permissões funciona no Urbis.
O Urbis utiliza um sistema de Controle de Acesso Baseado em Função (RBAC) para gerenciar a autorização.
Conceitos
- Usuário: Uma entidade autenticada.
- Cargo: Uma coleção de permissões (ex: Admin, Membro, Visualizador).
- Permissão: Um direito granular para executar uma ação (ex:
user:create,post:delete).
Implementação
Guards do Backend
Utilizamos Guards do NestJS para impor permissões nos endpoints.
@UseGuards(PermissionsGuard)
@Permissions('user:create')
@Post()
create(@Body() createUserDto: CreateUserDto) {
return this.userService.create(createUserDto);
}Esquema do Banco de Dados
O relacionamento é tipicamente:
User -> UserRole -> Role -> RolePermission -> Permission.
(Nota: Verifique apps/api/src/role/index.entity.ts para detalhes exatos do esquema, se necessário).