Restrições de acesso e permissões
Esta página consolida, por funcionalidade, quais perfis/capacidade liberam cada tela no frontend e a principal permissão de backend envolvida. Use-a como referência ao investigar por que um usuário tem (ou não) acesso a uma funcionalidade.
Tabela-resumo
| Funcionalidade | Rota (frontend) | Perfis / Capacidade | Permissão de backend (principal) |
|---|---|---|---|
| Incluir Cobrança / criar movimento | /finances (Painel) e /billing | Capacidade view_finances_module (ADMINISTRATOR, FINANCIAL) | ADD em finances.FinancialMovement |
| Cobrança Manual | /billing | Capacidade view_finances_module (ADMINISTRATOR, FINANCIAL) | Salvar FinancialDocument exige nível Colaborador+ |
| Criação de contrato | Perfil do usuário → "Incluir contrato" (contracts/contract) | Capacidade view_user_contracts (ADMINISTRATOR, MANAGER, COLLABORATOR) | ADD/CHANGE/VIEW em contracts.Contract |
| CRM de Contratos | /contracts-crm | Capacidade view_contracts_crm_module (COLLABORATOR, MANAGER, ADMINISTRATOR) | VIEW em contracts.Contract |
| Cadastro de biometria | /biometry-enroll | Perfil BIOMETRY_MANAGER | ADD em physical_devices.PhysicalDeviceBiometry |
| Reservas de espaço | /physical-space-reservations | Perfis BIOMETRY_MANAGER, MANAGER, ADMINISTRATOR | Permissão completa sobre PhysicalSpaceReservation |
Dois sistemas de permissão coexistindo
O sistema mantém dois modelos de permissão que coexistem:
- Legado — baseado no
user_typedo usuário (ADMINISTRATOR, MANAGER, COLLABORATOR, FINANCIAL, BIOMETRY_MANAGER, etc.). - Capabilities do Django — permissões granulares (ex.:
view_finances_module,view_user_contracts,view_contracts_crm_module).
Qual modelo é aplicado para cada usuário é controlado pelo seu permission_mode. Por isso, ao verificar acessos, é importante saber em qual modo o usuário está: no modo legado valem os perfis (user_type); no modo de capabilities valem as permissões granulares do Django.