ruzna prava ruznych uzivatelu k ruznym zdrojum (?) .)
- wdolek
- Člen | 331
pri pohledu na ACL mam pocit, ze to neni uplne presne to, co potrebuji. (a pokud je, tak me prosim opravte a nejak me nakopnete, at to v tom vidim).
rad bych v aplikaci docilil toho, aby kazdy uzivatel mel ruzna prava k necemu – ale zaroven, aby nebyly definovane nejake skupiny roli/prav ktere se chovaji stejne (vysvetleni nize).
napadlo me asi to nejjednodussi – mit nejake cislo a co bit, to pravo k nejakemu zdroji.
tedy napriklad
- bit = uzivatel se smi podrbat za uchem
- bit = uzivatel smi kliknout na odkaz „domu“
- bit = uzivatel se smi odhlasit z aplikace
- bit = uzivatel se smi hrabat ve vlastnim profilu
n. bit = uzivatel smi jist makarony
v tabulce uzivatelu bych pak mel proste ciselny zaznam… takze cislo 255 (dec) = 11111111 (bin) by znamenalo, ze uzivatel smi vsechno (a tedy cislo 1 (dec) = 00000001 (bin) znamena, ze uzivatel se smi jenom podrbat za uchem).
potiz je ale v tom, ze i treba jen ten integer
, ktery ma 4B ma
moznost obsahovat rozliseni pouze 32 prav (coz u nejake vetsi aplikace nemusi
stacit). z tohoto pohledu je to markantne neefektivni :P
a at koukam na ACL ze vsech moznych stran, stale tam vidim to „omezeni“, ze vytvarim v podstate skupiny prav, ktere se od sebe mohou dedit. jenze nejake podedeni prav od nizsi role je mi na nic – v mem prikladu bych rad definoval treba uzivatele, ktery ma moznost:
- jist makarony a nic jineho,
- druhy uzivatel by se smel jen drbat za uchem
- a treti by mohl jist makarony a smel by se odhlasit z aplikace
znamenalo by to, ze bych musel udelat snad nejakou permutaci roli ruzne vzajemne podedene :D
? nebo… to lze nejak naroubovat na ACL ?
- Bernard Williams
- Člen | 207
Nazdárek,
a co takhle místo rolí (v tvém případě) používat uživatele? Takže místo role admin by to byl vlastně uživatel Franta. Na to bys už mohl použít ten ACL model a vyprdnout se na nějaké bity..
Bernard
- redhead
- Člen | 1313
Já v tom nevidím problém. Dyť každý uživatel může mít více rolí, ne?
Viděl jsi dynamickou správu rolí??
https://doc.nette.org/…oli-a-zdroju
Pak budeš definovat, který uživatel, má jaké role a podle toho rozhodneš. Jde ale o to, že je to rozděleno na 2 tabulky 1:N (1 uživatel : více rolí) a ne v jednom sloupci v tabulce uživatelů.
- Ondřej Mirtes
- Člen | 1536
S těmi bity – to mluvíš už o způsobu uložení těch informací. Podle mě je lepší to mít rozepsané v relacích v tabulkách pod tou dynamickou správou, než mít nějaký krátký string, který musíš rozluštit.
V každém případě ale můžeš použít jakýkoli způsob uložení,
když to pak dokážeš „převést“ na volání metod allow/deny třídy Permission, která
v Nette je a pro ověřování oprávnění
($user->isAllowed()
) se používá.