Substituir o RBAC estatico atual (roles fixas em packages/permissions/src/abilities.ts) por um sistema dinamico onde admins podem criar role-levels com permissoes customizadas.
Atualmente: guest|technician|warehouse|financial|manager|admin - roles e permissoes hardcoded.
Schemas:
custom_roles (id, name, company_id, permissions JSON array, editable bool, created_at)
employee_role_assignments (id, employee_id, role_id) - substituir employees.role ENUM
Implementacao:
- Migracao dos roles existentes para o novo schema (6 roles padrao com
editable: false)
- Refatorar
packages/permissions/ para buscar permissoes do DB ao inves de constantes
- Atualizar
createAbility() para aceitar roles dinamicos
- Frontend
/settings/roles com editor visual (grid: permissoes x roles, checkbox para ativar/desativar)
- UI de atribuicao de role no cadastro/edicao de employee (dropdown com roles da company)
- Roles admin nao podem ser editadas nem excluidas
Substituir o RBAC estatico atual (roles fixas em
packages/permissions/src/abilities.ts) por um sistema dinamico onde admins podem criar role-levels com permissoes customizadas.Atualmente:
guest|technician|warehouse|financial|manager|admin- roles e permissoes hardcoded.Schemas:
custom_roles(id, name, company_id, permissions JSON array, editable bool, created_at)employee_role_assignments(id, employee_id, role_id) - substituiremployees.roleENUMImplementacao:
editable: false)packages/permissions/para buscar permissoes do DB ao inves de constantescreateAbility()para aceitar roles dinamicos/settings/rolescom editor visual (grid: permissoes x roles, checkbox para ativar/desativar)