﻿# Runtime de permissoes por grupos e kits

## Objetivo
Consolidar a resolucao de acesso em torno de `usuario -> grupo -> kit -> namespace`, reduzindo a dependencia de helpers legados e tirando `user_tipo` do centro da ACL administrativa.

## Hierarquia atual
1. `tiix_is_admin_like()` continua como passe livre para super administracao.
2. O runtime PSR tenta resolver o namespace da tela ou da API.
3. Os namespaces permitidos passam a ser buscados primeiro pelos grupos ativos do usuario no contrato atual.
4. Cada grupo pode vincular zero ou mais kits em `perm_group_kit`.
5. Cada kit concede namespaces por `perm_kit_namespace`.
6. Overrides de usuario, equipe e contrato continuam valendo por cima da baseline.

## Fonte principal da baseline
A baseline nova passa a considerar:
- `usuario_grupo_permissao`
- `grupos_permissoes`
- `perm_group_kit`
- `perm_kits`
- `perm_kit_namespace`
- `perm_namespaces`

Regra de recorte:
- grupos do mesmo contrato ativo
- grupos globais com `id_contrato = 0`

## Compatibilidade mantida
Enquanto a migracao nao termina, o runtime ainda soma um fallback secundario por `user_tipo`:
- `perm_contract_kit`
- `user_tipo_kit_map`

Esse fallback existe para nao quebrar areas antigas ou publicas que ainda dependem desse modelo.

## Onde isso roda
- `src/Core/Permissions/Repositories/EffectiveAccessRepository.php`
- `src/Core/Permissions/Support/AccessResolver.php`
- `src/Modules/PermsResolve/Http/PermsResolveController.php`

## Efeito pratico
Com isso:
- a guarda de tela por namespace passa a reconhecer kits ligados ao grupo do usuario
- o endpoint de resolucao de permissoes passa a devolver prefixes vindos do modelo de grupos e kits
- `user_tipo` deixa de ser a fonte principal da ACL administrativa

## Proximos passos recomendados
1. Aplicar o mesmo resolvedor ao menu e a pontos que ainda consultam slug diretamente por helper legado.
2. Criar diagnostico visual do acesso efetivo por grupo, kit e namespace.
3. Esvaziar `includes/helpers/PermissoesHelper.php`, deixando-o apenas como bridge temporaria.
4. Revisar telas e endpoints que ainda dependem de `user_tipo` como fonte principal.
