10. 12. 2009

PostNuke - Práva v praxi : začněme od píky

V předchozích dílech jsme rozebírali daný systém víceméně po teoretické stránce. Od tohoto momentu začneme rozebírat práva na základě praktických příkladů.
Na úvod drobná poznámka ... Praktické příklady budu rozebírat v rozhraní tzv. standardní editace.

Minimální práva = "hvězdičkové řádky"

Otevřete-li si rozhraní pro úpravu práv, zjistíte, že se v ní nachází řádky, které jak u komponenty tak v instanci obsahují zápis .*. Tyto řádky nastavují pro jednotlivé skupiny ta nejobecnější práva pro všechny moduly a bloky. Takže:

Skupina
Komponenta
Instance
Oprávnění
Administrátoři
.*
.*
Administrátor
Uživatelé
.*
.*
Komentář
Neregistrovaní
.*
.*
Číst
  • Administrátoři mají nejvyšší práva a mohou vše administrovat. Neexistují mocnější uživatelé.
  • Uživatelé (tj. všichni registrovaní) mohou vše komentovat.
    Poznámka: V některých modulech taková práva nestačí pro přidávání obsahu... U článků tomu tak naštěstí není. Chcete-li však zajistit přidávání ve všech modulech, nastavte obecné právo na Přidat - mohlo by to ve většině případů postačit.
  • Neregistrovaní si mohou vše pouze přečíst.
Výše uvedený seznam zajišťuje plnou funkčnost systému a dalo by se řící, že se jedná o to nejzákladnější nastavení práv.
Pro zopakování teoretických znalostí z dřívějších dílů zkusme prohodit první a druhý řádek:

Skupina
Komponenta
Instance
Oprávnění
Uživatelé
.*
.*
Komentář
Administrátoři
.*
.*
Administrátor
Neregistrovaní
.*
.*
Číst
 V tomto případě má toto nastavení "katastrofální" důsledky. Rázem se administrátoři nedostanou do žádné administrace. Proč? Administrátor zároveň patří do skupiny Uživatelé (je přece registrovaný). A díky tomu se uplatní první řádky a všechny řádky, které se nacházejí níže, se již neprocházejí. Takže nedojde ani k tomu, že by se práva posílila na administraci (druhý řádek).
Jak tento problém vyřešit? Přečtěte si poslední kapitolu v tomto článku.

Přidáváme manažery

Představme si situaci, že chceme vytvořit zvláštní skupinu manažerů, kteří mají právo až na úroveň mazání. V prvním příkladě nastavíme toto právo pro všechny moduly a bloky.


Skupina
Komponenta
Instance
Oprávnění
Administrátoři
.*
.*
Administrátor
Manažeři
.*
.*
Mazat
Uživatelé
.*
.*
Komentář
Neregistrovaní
.*
.*
Číst
Poznámka: Může vás napadnout otázka, jaký je rozdíl mezi právem Mazat a Administrátor. V některých případech nemusí být mezi nimi žádný rozdíl, nicméně poměrně často pouze právo administrace povoluje přístup ke konfiguraci modulu či bloku.
Druhý příklad je o poznání zajímavější. Řekněme, že skupině Manažeři chcete povolit plnou správu článků a případně i fotogalerie. Pak postačí toto nastavení:


Skupina
Komponenta
Instance
Oprávnění
Administrátoři
.*
.*
Administrátor
Manažeři
(Stories::Story|photoshare::)
.*
Administrátor
Uživatelé
.*
.*
Komentář
Neregistrovaní
.*
.*
Číst
K tabulce několik poznámek:
  • Druhý řádek lze samozřejmě rozdělit do dvou oddělených řádků, ale zápis jednoho řádku působí zajímavěji, že? (Pokud vám zápis není jasný, projděte si regulární výrazy...)
  • Tento příklad umožňuje správu článků, nedovolí však spravovat témata pro články. Víte proč?
  • Zkuste odhadnout, co se stane, když prohodíte druhý a třetí řádek.

Práva přestala funfovat - jak z toho ven?

V takovém případě si vzpomeňme na instalaci systému. Jakmile jste vše úspěšně rozběhli, museli jste smazat adresář install a taktéž soubory install.php a kpz.php.  právě ten druhý (já mu říkám Krabička poslední záchrany) budete potřebovat. Zkopírujte si jej tedy do příslušného adresáře a otevřte si jej v prohlížeči. Jedna z nabídek umožní resetovat práva. Jakmile si zvolíte tento odkaz, nastaví se práva do určitého stavu, který by měl být funkční. Nejedná se sice o minimální práva, uvedená v první kapitole, ale dají se bez problémů nastavit (vymazáním nepotřebných řádků).
Osobní doporučení: Chcete-li skutečně začít od píky, využijte výše uvedeného postupu ještě dříve, než začnete s právy pracovat ... Rozhodně se vám to vyplatí, protože si všechna práva nastavite s porozuměním.

Žádné komentáře:

Okomentovat