KB-PLUGIN-044: gotcha do right custom (relogin) e gate por right nativo (padrao butterfly) - incidente mindscrum 1.0.0/1.0.1
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
2001dbfc0c
commit
0c6d70c1c9
1 changed files with 16 additions and 0 deletions
|
|
@ -98,6 +98,22 @@ e são testáveis em CLI.
|
|||
Teste E2E que prova: sessão com `ticket => READ` (sem READALL) deve ver só os
|
||||
chamados onde é ator; sessão com rights zerados deve ter toda mutação negada.
|
||||
|
||||
## Right CUSTOM exige relogin de TODOS — gate por right NATIVO evita (padrão butterfly)
|
||||
|
||||
Incidente em produção (mindscrum 1.0.0): right custom (`plugin_mindscrum_board`)
|
||||
gravado em `glpi_profilerights` no install, mas o GLPI carrega rights na sessão
|
||||
**no LOGIN** — o menu apareceu SÓ para quem instalou; todos os outros usuários
|
||||
(inclusive super-admins) precisariam de logout/login. Sintoma: "o plugin só
|
||||
aparece para quem instalou".
|
||||
|
||||
Solução (1.0.1, replicando o butterfly): **gate por right NATIVO** já presente
|
||||
em toda sessão — `Board::$rightname = 'ticket'` (menu/leitura = `ticket READ`;
|
||||
edição = `ticket UPDATE`) + guardas por item (`canUpdateItem` etc.). Sem classe
|
||||
Profile, sem `change_profile`, sem relogin. Regra prática: só crie right custom
|
||||
se o plugin precisa de permissão que NENHUM right nativo representa — e aceite o
|
||||
custo do relogin pós-install; para ferramentas sobre itens nativos (board de
|
||||
tickets/projetos), o right nativo do item é o gate certo.
|
||||
|
||||
## Bônus — XSS de atributo em JS de plugin
|
||||
|
||||
`div.textContent = s; return div.innerHTML` escapa `& < >` mas **não aspas** —
|
||||
|
|
|
|||
Loading…
Reference in a new issue