NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Neaktivní uživatel:26.5.2015 16:09

Ahoj,
po delší době jsem se zase vrhnul na budování svého CMS. Mám 2 otázky na 2 skupiny lidí.

  1. Programátoři - jak řešíte uživatelské oprávnění vy? Máte tam pevné role do kterých může uživatel jen dosazovat nebo je zde nějaká možnost si to přizpůsobit?
  2. Uživatelé - jak to vnímáte vy? Kolik rolí pro svůj web potřebujete a je pro vás přizpůsobení oprávnění užitečné nebo si vystačíte s nachystanými rolemi?

Díky za všechny odpovědi :-)

Odpovědět
26.5.2015 16:09
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Šmahel:26.5.2015 16:15

Nejlepší je obojí. Teď jsem použil pevné role a lehce toho lituji, asi to stejně předělám na určitá oprávnění.
Pro uživatele jsou přednastavené lehčí na obsluhu, ale hodí se i možnost poupravit si je.

Nahoru Odpovědět
26.5.2015 16:15
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:26.5.2015 16:18

Je tu spousta faktorů. Pokud je aplikace určena pro administrátora, očekávající plnohodnotnou aplikaci, musíš naprogramovat role i s přispůsobením. Nejlépe v administraci úpravu rolí spolu s přispůsobením práv.
Pokud je redakční systém pro tebe, bude lepší nechat přizpůsobení práv na samotné logice aplikace. Při úpravě webu si můžeš pohodlně vyhrát se složitostí práv, což by v administraci bylo poněkud obtížnější.

Pokud jde o počet rolí, zase závisí na několika faktorech. Nicméně pro redakční systém je osvědčená hierarchie: administrátor, editor, redaktor, člen. Kdy editor články schvaluje, redaktor publikuje. Počet rolí pak závisí na složitosti aplikace, nicméně na jednoduchý redakční systém by to mělo stačit.

Nahoru Odpovědět
26.5.2015 16:18
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:26.5.2015 16:23

Ještě bych trochu doplnil - otázka pro obě skupiny:

Jaký způsob řízení oprávnění je podle vás nejlepší?

  1. Naklikat několik rolí, kde každá má nějakéé oprávnění. Tyto role pak přiřazovat uživatelům.
  2. Udělat skupiny uživatelů s nějakým oprávněním. Do těchto skupin pak přiřazovat uživatele.
  3. Nastavovat oprávnění každému uživateli ručně.
  4. Udělat úrovně pro skupiny/uživatele (a pak se ptát zda je úroveň vyšší než x).

Případně něco dalšího?

Editováno 26.5.2015 16:24
Nahoru Odpovědět
26.5.2015 16:23
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:26.5.2015 16:32

1 a 2 je přece to samé, role je skupina uživatelů. Tady není nad čím přemýšlet, každý dobře navržený informační systém to má takhle udělané. Úrovně oprávnění nebudou fungovat, v žádné reálné aplikaci nemáš role takhle lineárně za sebou, co tu padlo jsou jen učebnicové příklady.

Nahoru Odpovědět
26.5.2015 16:32
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.5.2015 16:36

1 a 2 není to samé.
U 1 znamená každá role nějaké oprávnění a uživatel jich může mít kolik chce.
Ve 2. má skupina několik oprávnění a uživatel může být v jedné skupině.

Nahoru Odpovědět
26.5.2015 16:36
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:26.5.2015 16:37

Číslo jedna a dvě se mi zdají stejné. Skupina s oprávněním = role. Je jedno jestli v databázi přiřazuješ ID role, nebo skupiny. Možná jsem ale nepochopil myšlenku. Nastavovat oprávnění ručně také není zrovna nejlepší nápad, nicméně stejně při registraci musíš uživateli nějakou hodnotu nastavit.

Osobně používám role, kterým v databázi přiřazuji oprávnění. Uživatelům pak při registraci (nebo změnách v administraci) přiřazuji roli. Pak by to mohlo vypadat takto:

Oprávnění
---------
id: 1
...

Role
----
id: 1
...

Oprávnění rolí
--------------
id_role: 1
id_opravneni: 1

Uživatelé
---------
id: 1
id_role: 1

// Edit: David byl rychlejší, takže poznámku o synonymitě jedničky a dvojky ignoruj. :)

Editováno 26.5.2015 16:38
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
26.5.2015 16:37
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:26.5.2015 16:39

Nevidím žádný smysl v entitě "oprávnění". Když má někdo roli "redaktor", tak prostě může psát články. Nic víc se v tom hledat nemusí, další informace není potřebná.

Nahoru Odpovědět
26.5.2015 16:39
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.5.2015 16:41

Napsal jsem to tak právě kvůli přispůsobování v administraci. Aby neměl administrátor pouze pevné předpřipravené role. Ale samozřejmě taky možnost.

Nahoru Odpovědět
26.5.2015 16:41
Neaktivní uživatelský účet
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.5.2015 16:43

Tam jde o to aby to bylo univerzální. Pokud to správně chápu, v kódu nastavíš že potřebuješ to a to oprávnění (např psát články a schvalovat je). Roli (skupině) pak nastavíš že má to a to oprávnění (např jenom psát články). Tu roli pak přiřadíš uživateli a podle toho jaká oprávnění má může provádět různé akce.

EDIT: Resp. do role přiřadíš uživatele
EDIT2: Píšu moc dlouho .. :D

Editováno 26.5.2015 16:44
Nahoru Odpovědět
26.5.2015 16:43
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:26.5.2015 16:50

Uživatel má ty role, které mu naklikáš. Já tu mám asi 20 různých rolí. Kdybys chtěl, abych tu měl jen jednu (administrátor), tak mezi nimi implementuješ dědičnost. Pojem "oprávnění" mi přijde matoucí.

Nahoru Odpovědět
26.5.2015 16:50
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.5.2015 16:56

Teď jsem tě nějak nepochopil. Dokáže tvůj administrátor vytvořit novou roli podle svých představ, aniž by zasáhl do kódu? O to mi právě šlo. Možná jsem tě ale špatně pochopil. Nicméně je tisíce způsobů a každý to samozřejmě vymyslí jinak.

Nahoru Odpovědět
26.5.2015 16:56
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:26.5.2015 17:00

Oba chápeme role jinak, ty to máš postavené tak, že má uživatel jednu roli, která má více oprávnění. IMHO je logičtější, aby měl uživatel více rolí. Role potom funguje jako jedno tvé oprávnění.

Nahoru Odpovědět
26.5.2015 17:00
New kid back on the block with a R.I.P
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:26.5.2015 17:09

Já bych použil několik rolí a uživateli přiřadíš kolik potřebuješ - jako to máme tady. Aby uživatel moh mít pouze jednu roli, která by dědila ty předchozí, to se jednou můžeš dostat do bodu, kdy najednou budeš chtít, aby jeden člověk něco moh, ale jinej je. Například: Já sem Správce vtipů. To je poměrně bezvýznamná role se skoro žádnými oprávněními, takže bych s ní nic nedědil. Ale třeba Administrátor fóra, což je role významější, by zdědil všechno, co je pod ní - včetně Správce vtipů. A tady máš problém - na administraci vtipů chceš mít jednoho, dva, ale takhle by ti tam lezli všichni admini. Ale pokud budeš moct přiřadit několik rolí jen někomu bez dědění, tak se ti tohle nestane. Snad sem se vyjádřil dost jasně :D

Nahoru Odpovědět
26.5.2015 17:09
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Neaktivní uživatel:26.5.2015 17:14

Jasně, chápu co oba myslíte. Díky za rady :)

Editováno 26.5.2015 17:15
Nahoru Odpovědět
26.5.2015 17:14
Neaktivní uživatelský účet
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 15 zpráv z 15.