IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Lava
Člen
Avatar
Lava:9.9.2019 11:16

Potrebujem urobiť niečo také, aby užívatelia mali pridelené rozličné role a mali práva v aplikácií. Roli je 8 a budú mať nastavené default práva. Musí však byť možnosť administrátora nastaviť svoje práva aj vybranému užívateľovi. Tzn. mám užívateľa, ktorý môže robiť updaty na vybranú tabuľku v databáze a na inú nemôže. Ja ako admin mu musím vedieť zaškrtnúť checkbox, že áno, tento užívateľ môže robiť aj updaty na inú tabuľku. Ako by ste to riešili?

Zkusil jsem: Napadá ma jedine špeciálna tabuľka, kde cols budú jednotlivé "operácie" a rows budú užívatelia (druhý row teda bude user_id, aby bola spojitosť s tabuľkou užívateľov). Každý user bude mať svoj riadok v tej tabuľke. Pri registrácií (appka je špecifická tým, že užívateľ si vyberá svoju rolu, to je na dlhé vysvetľovanie) sa teda založí nový row v tej špeciálnej tabuľke a dotiahnú sa do neho defaultné nastavenia práv. Tie defaulty ako je lepšie robiť? Ako nejaké array hodnôt, alebo lepšie urobiť ako číselník tabuľku do DB?

Ak potom admin bude chcieť upravovať práva vybranému userovi, tak proste sa updatuje len ten jeden jeho row

Chci docílit: Je to takto múdry spôsob, či je lepšia cesta?

Odpovědět
9.9.2019 11:16
Aspartám, sacharín, to je môj vitamín
Avatar
Odpovídá na Lava
Michal Štěpánek:9.9.2019 11:41

Ideální je mít tabulky:
Users, Roles,
a pak UserInRoles, kde bude FK(UserId, RoleId)
a role přidělovat do té poslední tabulky

Nahoru Odpovědět
9.9.2019 11:41
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Lava
Člen
Avatar
Odpovídá na Michal Štěpánek
Lava:9.9.2019 12:05

No ved tak som to zhruba napusal aj ja. Akurat ze musim mat v cols vsetky operacie ako boolean a nastaveny true/false ne?

Nahoru Odpovědět
9.9.2019 12:05
Aspartám, sacharín, to je môj vitamín
Avatar
Odpovídá na Lava
Tomáš Novotný:9.9.2019 12:06

Ahoj, určitě bych se zamyslel nad tím, zda nemít i skupiny uživatelů/práv a opravdu vyjímečné odlišnosti poté řešit až na úrovni uživatele. Mám zkušenosti s právy na úrovni uživatele bez skupin. Mnohdy skupiny nepříjemně chybí. Navíc by to mohla být v podstatě odpověď i na tvá default práva.

Nahoru Odpovědět
9.9.2019 12:06
∞ ... the exact amount of possibilities how to deal with the situation ... so by calm, your solution is one of many
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9.9.2019 13:34

uzivatele
prava
skupina
skupina_uziva­tel_prava - aby slo nastavit uzivateli konkretni pravo nebo skupine konkretni pravo
uzivatel_skupina

Cili, 5 tabulek, uplne nednoduchy system prav. A ty jsi to chtel pro 1 tabulku clanky, ze? :) Blbe, co? :)
A pak treba budes potrebovat resit tabulky uzivatek_skupi­na_kategorie_cla­nek a pod :)
A to jsi zatim jeste neresil bezpecne prihlasovani, session a takove veci kolem uzivatelu.

Editováno 9.9.2019 13:36
 
Nahoru Odpovědět
9.9.2019 13:34
Avatar
Lava
Člen
Avatar
Odpovídá na Tomáš Novotný
Lava:9.9.2019 14:38

No len klidek, mám to na laraveli, nejake session a bezpečne prihlasovanie už je dávno vyriešene aj s trottlingom.
Toto som rozmýšľal s tými skupinami práve. Ja keď budem mať predvyrobené pole s default hodnotami, tak ho proste pri registrácií užívateľa pustím na tabuľku a nastaví sa to. Ono v podstate každý užívateľ bude mať svoje role_id takže to by som považoval za "skupinu" užívateľov, akurát, že práva sa nebudú nastavovať priamo na základe skupiny, ale na základe užívateľa. No uznávam, že nie je zlý nápad nastaviť práva skupine a až jednotlivé rozdiely na úrovni užívateľa... asi by to bolo lepšie aj pre databázu. Pri plnej prevádzke očakávam tak do 80 000 užívateľov (dokopy)

Nahoru Odpovědět
9.9.2019 14:38
Aspartám, sacharín, to je môj vitamín
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9.9.2019 15:43

role = firma + manager
role = firma + sekterarka
role = firma + pokladni
Takhle budes mit sdruzene uzivatele podle firmy, co smi celkove neco delat. A specialni role pro ruzne druhy zamestnancu. Kde skupina firma bude proste obezna skupina, treba s name=itnetwork. Jakoze firma si bude moci pracovat se vsim v kategorii itnetwork/ ale uz ve slozce seznam/.
Nevim, mozna bych to resil spis jinak. Pro zacatek takto a pak vymeslet nekdy neco lepcejsiho :)

Jakoze treba u nas jedeme uzivatele pres openldap. Mame tam kategorie pro jednotlive systemy.
role = firma, existuje ve firme (user exist dotazy)
role = zam / student, to je trochu navic (mi prijde, ze jsme to zacali resit jinak)
role = web_admin, web_editor, web_quest
role = mail_user, mail_admin
System ziska nejdriv z ldap, ze ten clovek existuje v nasem strome, ma role=firma. Pak ziska, jakou ma roli, treba web_editor. A potom system webu ma v sobe skupinu, prirazeni, co v tom webu editor muze, jaky obsah muze menit, u nas slozka oddeleni.
Resp, mozna pro urychleni tam mame role = web a az pak dalsi role web_admin.
role = firma zam web web_admin mail mail_user // jako ldap tree, cn parametr, tusim

 
Nahoru Odpovědět
9.9.2019 15:43
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9.9.2019 15:46

A potom byla myslenka takova, ze nad tim bude system jednotneho prihlaseni, ktery ti vyrobi session a prihlasi te do vsech systemu, web, mail... Pri kliknuti z webu na mail bys zustal prihlaseny. A soucasne by ten system dalsim systemum predal, jaka tam mas prava a pridelil ti nejake heslo. Neco, jak se tu resi prihlaseni pres fb.

Editováno 9.9.2019 15:47
 
Nahoru Odpovědět
9.9.2019 15:46
Avatar
Odpovídá na Lava
Tomáš Novotný:9.9.2019 15:53

Jasné, no uvidíš. Nevím co tvůj projekt obnáší, třeba se jednou navrhne odladí a nebude se dále měnit. Nebo to vymyslíš perfektně hned na začátku.
Moje zkušenost je spíše taková, že do toho přijdou úpravy, rozšíření, která nebyla v počátku ani myslitelná a můžeš se dostat do bodu, kde může být obtížnější upravovat globální defaultní práva, pokud jsou v nich zahrnuty výjimky již existujícího uživatele...
Dle mne oddělená práva skupiny a jednotlivce jsou lépe spravovatelná.

Nahoru Odpovědět
9.9.2019 15:53
∞ ... the exact amount of possibilities how to deal with the situation ... so by calm, your solution is one of many
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.