rozdělení práv administrátorů
- Pinqui
- Člen | 19
Tak základní rozdělení práv je celkem jasné:
- Uživatel
- Administrátor
web se bude skládat (napřiklad) z více samostatných systémků:
- chat
- fora
- vtipy
- 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ů.
- Hlavní admin (má přístup všude: mazání a vytváření adminů atd)
- 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.
- Pinqui
- Člen | 19
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)
- Mikulas Dite
- Člen | 756
No tak si uděláš ty role dvě, to že obojemu řikáš admin neznamená, že by to nešlo.
- Pinqui
- Člen | 19
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
Ale tak to to bude dynamické, takže tě netrápí kolik jich bude. https://doc.nette.org/…oli-a-zdroju
- Pinqui
- Člen | 19
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..
- toka
- Člen | 253
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
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
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í.
- Mikulas Dite
- Člen | 756
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
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
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
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
Tak ono ve zkratce přesně tohle dělá, akorát je to obalené do nějakých modelů.