Prava plati za firmu, ne za cloveka
permissionsOf(user) scitalo role pres vsechna clenstvi, takze kdo byl spravce v jedne firme, jednal jako spravce ve vsech, kam patril. Uzivatel ve dvou firmach je vzacny, dusledek ne. - firma je povinny argument u permissionsOf, hasPermission i hasAnyPermission. Zamerne povinny: kdyby byl nepovinny, prvni volani bez nej by tise vratilo vsechna prava. Prekladac tim rovnou nasel vsech ctrnact mist, ktera se ptaji. - kazde misto se pta za tu spravnou firmu: akce nad ticketem za firmu toho ticketu, uprava zaznamu za firmu toho zaznamu, zalozky a helpdesk za firmu, kterou ma clovek prepnutou - cizi firemni role se ignoruje, i kdyby na ni clenstvi odkazovalo. Jinak by stacilo pripsat si ji do clenstvi v jine firme a prava by se prenesla. - cache prav ma v klici firmu - readScope cte z jedne firmy, te prepnute, ne ze vsech. V nastaveni se driv michaly typy ticketu a role napric firmami bez ohledu na vyber. Opraveno u toho: systemove role se pri startu srovnaji s kodem (syncSystemRoles). Vychozi sada se pouzije jen do prazdneho uloziste, takze nove pravo v katalogu se k uz bezici instalaci nikdy nedostalo - ticket.create ani obe prava helpdesku by spravci firmy nenabehla a zalozka Helpdesk by se neobjevila. Meni se jen prava, jen u nasich roli, nazvu se to netyka. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2329ccbdc1
commit
2e0b9456a9
@@ -2,6 +2,37 @@
|
||||
|
||||
Nejnovejsi nahore.
|
||||
|
||||
## 2026-08-26 - prava plati za firmu, ne za cloveka
|
||||
|
||||
`permissionsOf(user)` scitalo role pres vsechna clenstvi. Kdo byl spravce
|
||||
v jedne firme, jednal jako spravce ve vsech, kam patril. Uzivatel ve dvou
|
||||
firmach je vzacny, dusledek ne - to neni edge case, to je diera v pravech.
|
||||
|
||||
### Zmeneno
|
||||
|
||||
- **Firma je povinny argument** u `permissionsOf`, `hasPermission`
|
||||
i `hasAnyPermission`. Zamerne povinny: kdyby byl nepovinny, prvni volani bez
|
||||
nej by tise vratilo vsechna prava. Prekladac tim rovnou nasel vsech ctrnact
|
||||
mist, ktera se ptaji.
|
||||
- **Kazde misto se pta za tu spravnou firmu.** Akce nad ticketem za firmu toho
|
||||
ticketu, uprava zaznamu za firmu toho zaznamu, zalozky a helpdesk za firmu,
|
||||
kterou ma clovek prepnutou. Kdo edituje zaznam jine firmy, musi mit pravo tam,
|
||||
ne tam, kde je zrovna prepnuty.
|
||||
- **Cizi firemni role se ignoruje**, i kdyby na ni clenstvi odkazovalo. Jinak by
|
||||
stacilo pripsat si ji do clenstvi v jine firme a prava by se prenesla.
|
||||
- **Cache prav ma v klici firmu.** Bez toho by prvni dotaz odpovedel i na druhou.
|
||||
- **`readScope` cte z jedne firmy, te prepnute**, ne ze vsech, kam clovek patri.
|
||||
V nastaveni se driv michaly typy ticketu a role napric firmami bez ohledu na
|
||||
vyber - stejna vada jako u prepinace, jen na jinem miste.
|
||||
|
||||
### Opraveno
|
||||
|
||||
- **Systemove role se pri startu srovnaji s kodem** (`syncSystemRoles`).
|
||||
Vychozi sada se pouzije jen do prazdneho uloziste, takze nove pravo
|
||||
v katalogu se k uz bezici instalaci nikdy nedostalo - `ticket.create`
|
||||
a obe prava helpdesku by spravci firmy nikdy nenabehla a zalozka by se
|
||||
neobjevila. Meni se jen prava, jen u nasich roli, nazvu se to netyka.
|
||||
|
||||
## 2026-08-26 - prepinac firmy plati pro cely portal
|
||||
|
||||
Prepinac byl stav uvnitr stranky Prehled. Prepnuti na LogiTrans zmenilo prehled
|
||||
|
||||
Reference in New Issue
Block a user