# Roadmap — Controle de Acesso / Estrutura Multi-tenant

Checklist de próximas tarefas levantadas em 2026-07-21, a partir da falha de escopo por empresa encontrada em `paginas/cadastro_equipe.php` (usuários de outras lojas aparecendo na listagem de equipe).

## 1. Perfis de acesso por Loja (`cad_perfil` per-tenant)

- [ ] Confirmar se `cad_perfil` hoje vive no banco fixo compartilhado (mesmo caso do `cad_usuarios` que foi corrigido — colaboradores de lojas diferentes se misturando por falta de escopo por empresa).
- [ ] Definir se a solução é adicionar `per_empresa_id` (coluna de escopo) na tabela atual, ou migrar `cad_perfil`/`cad_usuarios` para um banco por tenant (o "ecookcom_ecook_???" mencionado).
- [ ] Levantar todos os pontos do código que fazem `SELECT/INSERT/UPDATE` em `cad_perfil` e `cad_usuarios` sem filtro de empresa (`includes/cadastro_perfil.php`, `paginas/cadastro_equipe.php`, `paginas/cadastro_usuario.php`, `includes/perfil_acesso.php`) para mapear o esforço de migração.
- [ ] Decidir estratégia de migração de dados (script em `sql/`) sem quebrar logins existentes em `login_global`.

## 2. Unificar `ecookcom_ecookplus_loja` + `ecookcom_ecookplus_admin`?

- [ ] Mapear o que cada banco guarda hoje e por que estão separados (histórico: ADM local vs. instalação fixa da Loja).
- [ ] Avaliar impacto nas conexões atuais (`includes/conecta.php`, `conecta_loja.php`, `conecta_master.php`, `conecta_tenant.php`) — quais telas dependem de qual banco.
- [ ] Levantar prós/contras: unificar simplifica conexões, mas pode reforçar o problema do item 1 (dados de lojas diferentes na mesma tabela) se não vier acompanhado de escopo por tenant.
- [ ] Decisão: unificar bancos só faz sentido **depois** de resolver o escopo por empresa (item 1), senão só aumenta a superfície do mesmo bug.

## 3. Repensar o Controle de Acesso (RBAC) como um todo

- [ ] Hoje é hardcoded via string (`$_SESSION['usuario_nivel']`) comparada em cada tela/API — sem fonte única de verdade (ver `includes/perfil_acesso.php`).
- [ ] Já existem peças novas soltas no repo (`cadastro_modulos`, `cadastro_perfil`, `cadastro_perfil_modulo`, `controle_acesso.php`, tabelas `cad_perfil_modulo`) — avaliar se essa é a base do novo modelo ou um MVP paralelo a ser revisado.
- [ ] Definir modelo final: perfil → módulos → permissões (matriz), e se isso substitui os helpers atuais (`isUsuarioAdmin()`, `isUsuarioLoja()`, `isAdminOuLoja()`) ou convive com eles.
- [ ] Corrigir a falha de IDOR identificada em `cadastro_equipe.php` (editar/excluir/inativar não validam `usu_empresa_id` do registro-alvo) — provavelmente entra nesse redesenho.
- [ ] Atualizar `.cursorrules` (seção "Controle de acesso hoje") e `CLAUDE.md` depois que o novo modelo for definido, para não ficar desatualizado.
