ruzna prava ruznych uzivatelu k ruznym zdrojum (?) .)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wdolek
Člen | 331
+
0
-

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

  1. bit = uzivatel se smi podrbat za uchem
  2. bit = uzivatel smi kliknout na odkaz „domu“
  3. bit = uzivatel se smi odhlasit z aplikace
  4. 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
+
0
-

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
+
0
-

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
+
0
-

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á.

wdolek
Člen | 331
+
0
-

#2 vida, to zni docela jednoduse ;) a velice logicky!

#3 videl :) ale … potreboval sem nakopnout (prispevkem #2)

#4 tak ono pracovat s bity by v isAllowed nemel byt problem – ale :) stacilo se vymanit z „roli“ :) a uz mam jasno

vsem diky :D