rozdělení práv administrátorů

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

Tak základní rozdělení práv je celkem jasné:

  1. Uživatel
  2. Administrátor

web se bude skládat (napřiklad) z více samostatných systémků:

  1. chat
  2. fora
  3. vtipy
  4. fotoalba


v databázi by to mělo být co podsystém to kolonka zda k tomu má práva viz níže.

Ale teď se dostávám trochu k jednomu problému, kterému nemohu přijít na kloub:
Dejme tomu budu mít 2 stupně administrátorů.

  1. Hlavní admin (má přístup všude: mazání a vytváření adminů atd)
  2. Plnohodnotný admin:

a teď ta komplikace: chci abych jim jako hlavní admin mohl rozdávat práci, tudíž když budu chtít třeba aby Franta měl jen fora, tak mu dám jen fora. Ale například u Honzy bych chtěl aby mohl mít i fóra i fotoalba. A takhle to měnit u všech, třeba někdo by mohl všechno, ale třeba jen jednu věc. A nevím jak to zabudovat tak, aby hlavní admin měl přístup všude a plnohodnotný admin měl přístup podle rolí (neboli jak mu dát více rolí aby všechny role platily). Děkuji za odpovědi.

toka
Člen | 253
+
0
-

A co ACL?

Pinqui
Člen | 19
+
0
-

Asi jsem to nepochopil… nebo nevím zda jste vy pochopili mě…

Potřebuji, aby třeba uživatelé viděli, že jsou na webu jen dvě hodnosti administrátorů:
SuperAdmin – například já
BasicAdmin – dalších x lidí

s tím, že tomu Basic admin chci ještě rozdělit práva tak, aby měl přístup jen tam kam budu chtít, takže to nebude věcně další stupeň adminů, ale budu mít dejme tomu 20 podfunkcí a já si budu chtít vybrat jen nějaké, ke kterým by měl přístup(to už bych nikde nezobrazoval a tím zobrazením myslím například ikonku, či jinou barvu označení nicku mezi seznamem registrovaných)

Lopata
Člen | 139
+
0
-

No, tak to je ACL, jak ti radí ostatní. Ikdyž myslim, že tady by ti postačilo ACL statické

Pinqui
Člen | 19
+
0
-

nojo, ale tak tam je v tabulce jen jedno role, což znamená, když budu mít dva lidi

Man1 – editor

Man2 – editor

, tak zde už nerozdělím že Man1 má přístup třeba jen k fórům a Man2 jen k schvalování registrací, schvalování fotek

Editoval Pinqui (31. 3. 2010 17:03)

Mikulas Dite
Člen | 756
+
0
-

No tak si uděláš ty role dvě, to že obojemu řikáš admin neznamená, že by to nešlo.

Pinqui
Člen | 19
+
0
-

Právě že na tom webu bude asi takovejch 20 samostatných úseků..
dříve jsem to řešil tak že jsem měl třebas v tabulce 20 sloupců 0,1 přičemž, když tam měl 1 tak měl přístup k spravování dané sekce, když tam měl 0 tak neměl to právo, což mi dalo možnost dát každýmu adminoj možnost spravovat všechno a nebo taky nic. a na to se tu ptám, jak a jestli to lze udělat s tím acl. V administraci by to vypadalo asi tak, že kdybych vybral uživatele jako admina (nižšího mě), tak by mi vyjela nabídka chackboxů, kde bych vybral do čeho všeho může mít přístup.

Mikulas Dite
Člen | 756
+
0
-

Ale tak to to bude dynamické, takže tě netrápí kolik jich bude. https://doc.nette.org/…oli-a-zdroju

Pinqui
Člen | 19
+
0
-

Pak nechápu jak to bude vypadat, abych to mohl jako hlavní admin takto nastavovat. Už jsem četl to dynamické, ale pořád nechápu, do jaké tabulky nebo prostě jak budu zapisovat to, k čemu bude mít takhle jednotlivej admin přístup.. Jestli to chápeš, a uměl by jsi to třeba ukázat na výběru ze tří chackboxů, moc by jsi mi pomohl..

Foowie
Člen | 269
+
0
-

Neber to jako rozdělení SuperAdmin, ObyčAdmin, ale jako adminrole1, adminrole2, adminrole3, role1 … s tím, že pokud má nějaký uživatel všechny role, tak je SuperAdmin, a pokud má alespoň jednu adminroli, tak je to ObyčAdmin…

toka
Člen | 253
+
0
-

Foowie napsal(a):

Neber to jako rozdělení SuperAdmin, ObyčAdmin, ale jako adminrole1, adminrole2, adminrole3, role1 … s tím, že pokud má nějaký uživatel všechny role, tak je SuperAdmin, a pokud má alespoň jednu adminroli, tak je to ObyčAdmin…

A nebo lze vhodně využít dědičnost rolí.

Pinqui
Člen | 19
+
0
-

Nojo, ale pakliže tedy budu brát že budu mít 10 podsystémků, u kterých si chci vybrat kdo je bude adminovat, tak mám ohromnej počet rolí do tisíců.. když si to tak vezmu:vypíšu třebas povolení pro 3 lidi… jen na ukázku

Uživatel1 jako admin – system1, system3

Uživatel2 jako admin – system2, system3, system5 (když budu chtít, tak system8, system9,…)

Uživatel3 jako admin – system1, system 4, system10

Je deset samostatných podsystémů a každýmu adminoj si vyberu, jen to do čeho chci aby měl přístup, pak pro role to znamená povolení:

role1: system1

role2: system2

role3: system3

..

role11: system1, system2

… nekončící řady, když mohu vybrat náhodně z 10 (presenterů), do kterých chci aby měl určitý uživatel přístup

stráááášně moc rolí, abych ošetřil všechny možnosti výběrů.

Mikulas Dite
Člen | 756
+
0
-

A proč to neuděláš jako má právo měnit #1 a má právo měnit #2, někdo jinej může měnit jenom #3. Tzn. máš tři práva, né osum kombinací.

Pinqui
Člen | 19
+
0
-

Tak teď tě nějak nechápu s tím má právo měnit.. Nedokážu si představit, jak bude vypadat upravenej permision a tabulka uživatele, kde mu to budu měnit, které z těch x systémů má právo ovládat

Mikulas Dite
Člen | 756
+
0
-

Mluvim o návrhu, přece nebudeš tvořit selectbox, ve kterym bude:

<option>právo na sekci 1 a sekci 2</option>
<option>právo na sekci 1 a sekci 3</option>
<option>právo na sekci 1 a sekci 2 a sekci 3</option>

atp., ale uděláš to třeba přes checkbox, takže si zaškrtneš

<checkbox>právo na sekci 1</checkbox>
<checkbox>právo na sekci 2</checkbox>
<checkbox>právo na sekci 3</checkbox>

a z toho to nakombinuješ.

Pořád mám ale pocit, že se snažíš mít každou kombinaci nějak pojmenovanou.

Pinqui
Člen | 19
+
0
-

http://www.peet.cz/ukazka.html

Takto to chci mít, pak ale teda jak bude vypadat to acl, nebo permision, aby mi to fungovalo?

A jak bude vypadat v mysql tabulka uživatele, se kterou bude to acl pracovat

Editoval Pinqui (1. 4. 2010 17:10)

Mikulas Dite
Člen | 756
+
0
-

Tak jedna možnost je mít co uživatel, to role (předpokládám, že administrátorů tam moc nebude), druhá je napsat si vlastní správu, která umožní takovéhle rozšířené dynamické čachry (třeba přiřazení více rolí – co já vím, tak Nette nic takového neumí).

\\Edit: napiš si vlastní, kde normální user bude mít normální přístup a u admina se bude měnit návratová hodnota isAllowed() podle těch nastavení (tzn. podle db).

Editoval Mikulas Dite (1. 4. 2010 17:35)

Pinqui
Člen | 19
+
0
-

No jak říkám dříve jsem to měl tak, že co jakoby ten systém, tak to sloupec v tabulce (1 – má právo, 0 – nemá právo), pak při příchodu do dané části administrace jsem se podíval na daný sloupec a když tam měl právo, tak tam mohl.. když ne tak nemohl, proto to bylo lehké co checkbox, to sloupec v tabulce

Mikulas Dite
Člen | 756
+
0
-

Tak ono ve zkratce přesně tohle dělá, akorát je to obalené do nějakých modelů.

pekelnik
Člen | 462
+
0
-

Pinqui napsal(a):

Takto to chci mít, pak ale teda jak bude vypadat to acl, nebo permision, aby mi to fungovalo?

A jak bude vypadat v mysql tabulka uživatele, se kterou bude to acl pracovat

Já nevim jestli to není otázka spíče pro nějaké orákulum :|