Pro připomenutí
Doufám, že čtenáře neurazím, když připomenu, co jsou to bloky a kde se nachází. Bloky jsou nedílnou součástí vzhledu PostNuke, které se v drtivé většině případů umísťují do levé, střední a pravé části stránky. V rámci jejich administrace však můžete víceméně určit, kde se jaký blok nachází, nikoliv však kdo jej uvidí.Než se pustíme do dalšího popisu, doporučuji, abyste si znovu pročetli článek Práva - komponenta, instance a další pojmy.
Co pro většinu bloků postačí?
V prvé řadě si v drtivé většině případů vystačíme s právy Nic, Číst a Administrace. Právo Nic zabrání tomu, aby byl blok zobrazen. Číst povoluje jeho zobrazení a Administrace může ve výjimečných případech zajistit přístup do administrace bloku.Poznámka: Nezapomeňme na hvězdičkové řádky ... (viz článek Práva v praxi - začněme od píky). Řádek pro administrátory zajistí přístup k administraci všech bloků, řádek pro uživatele i pro neregistrované, zase pro změnu dovoluje všem zobrazení jakéhokoliv bloku. Chci-li tedy omezit zobrazení bloku určité skupině, pak musím příslušná práva nastavit mezi hvězdičkový řádek pr administrátory a uživatele.
Příklad pro HTML blok
Připomeňme, že HTML blok umožňuje zápis HTML kódu a jeho zobrazení v příslušné části stránky (například je vhodný pro základní kontaktní informace). tento blok je spravován souborem includes/blocks/html.php a v něm je pomocí funkce pnSecAddSchema() určena komponenta 'HTMLblock::' => 'Block title::'.Předpokládejme tedy, že si vytvoříte HTML blok s názvem Kontakty a navíc nechcete, aby byl tento blok zobrazen skupině Útočníci a neregistrovaným uživatelům. Pak nastavíte práva:
Skupina | Komponenta | Instance | Oprávnění |
Útočníci | HTMLblock:: | Kontakty:: | Nic |
Neregistrovaní | HTMLblock:: | Kontakty:: | Nic |
- Co by se stalo, kdybychom druhý řádek neuvedli? Předpokládejme přitom, že někde pod příslušným řádkem existuje i řádek hvězdičkový, který nastavuje pro neregistrované právo číst.
V takovém případě by vznikla paradoxní situace, kdy registrovaní uživatelé ze skupiny Útočníci by blok neviděli, ale neregistrovaní ano. A to nemá logiku ... - Co by stalo, kdybychom neuvedli první řádek?
V takovém případě se znepřístupní blok pouze pro neregistrované... A to již logiku má.
Kde jednoduchá práva nestačí ...
Existuje velmi málo bloků, které nabízejí větší možnosti. Uvedeme dva velmi blízké bloky. Prvním z nich je tzv. generické menu, které je řešeno souborem includes/blocks/menu.php. V něm najdete funkci pnSecAddSchema(), včetně komponenty ''Menublock::', 'Block title:Link name:'.Předpokládejme tedy, že máte genrické menu Rozcestník a v něm řádky Administrace, Statistika, Poslat článek, Vytvořit stránku a Registrace. Dále si řekněme, že položky Administrace a Statistika mohou vidět jen Administrátoři. Položky Poslat článek a Vytvořit stránku mohou vidět jen registrovaní uživatelé. Naopak neregistrovaní vidí položku Registrace, ale ostatní zmíněné položky vidět nesmí. Pak práva budou sestavena následovně:
Skupina | Komponenta | Instance | Oprávnění |
Všichni uživatelé | Menublock:: | Rozcestník:Registrace: | Nic |
Admnistrátoři | .* | .* | Administrátor |
Všichni uživatelé | Menublock:: | Rozcestník:(Administrace|Statistika): | Nic |
Neregistrovaní | Menublock:: | Rozcestník:(Administrace|Statistika|Poslat článek|Vytvořit stránku): | Nic |
Všichni uživatelé | .* | .* | Komentovat |
Neregistrovaní | .* | .* | Číst |
Hned a okraj okomentuji pro jistotu hvězdičkové řádky, protože budou hrát důležitou roli. Administrátoři od daného hvězdičkového řádku mohou vše (tedy si přečtou všechny položky v menu rozcestník). Posledních dva řádky zase určují, že uživatelé a následně i neregistrovaní si vše přečtou (takže si také vše přečtou).
Co tedy jednotlivé řádky znamenají:
- První řádek určuje, že žádný registrovaný uživatele neuvidí řádek Registrace.
A teď vcelku důležitá věc - tento řádek předchází hvězdičkovému řádku pro Administrátory. Pouze díky tomu neuvidí položku Registrace ani Administrátoři. Pokud by byly řádky prohozené, pak by se pro administrátora uplatnil hvězdičkový řádek a ostatní řádky by se již neprocházely. - Třetí řádek odstraňuje všem registrovaným uživatelům z nabídky položky Administrace a Statistika. Nicméně administrátoři tyto položky uvidí, protože byl uplatněn hvězdičkový řádek, který je umístěn výše.
Otázkou je, co platí pro neregistrované uživatele? Zde je jednoduchá odpověď - vše řeší čtvrtý řádek. Kdyby však ve čtvrtém řádku nebyly uvedeny položky Administrace a Statistika, popřípadě by tento řádek vůbec nebyl uveden, pak by paradoxně k položkám měli přístup neregistrovaní... - Čtvrtý řádek (jak bylo zmíněno před chvílí) brání zobrazení příslušných položek u neregistrovaných uživatelů.
- Předposlední a poslední řádek pak zajišťuje zobrazení zbývajících položek pro všechny registrované uživatele či neregistrované. O tom jsem se ale zmínil již na začátku tohoto rozboru.
Jeden tip na závěr,
o kterém jsem se již zmínil. U příkladu s generickým menu se objevil řádek nad hvězdičkovým řádkem pro Administrátory. Za normální situace byste se měli tomuto případu vyhnout jako čert kříži.Nicméně výjimky potvrzují pravidlo ... A výjimkou je právě případ, kdy potřebujete omezit práva pro Administrátora. Jednu výjimku jsem uvedl u menu. Přidám však ještě jinou, o poznání zajímavější.
Chcete-li, aby se na úvodní stránce zobrazily informace pouze neregistrovaným uživatelům (například upoutávka ...), pak je jednou z efektivních možností vytvoření HTML bloku s danou informací a následně zakázání jeho zobrazení všem registrovaným uživatelům. A pokud toto právo přidát před hvězdičkový řádek administrátora, pak tento blok neuvidí ani on.
Vážení,
tímto článkem končím seriál o právech. Doufám, že vám byl k užitku a pevně věřím, že od tohoto momentu dokážete efektivněji využívat systém práv v PostNuke. Podotýkám však, že ne vždy práva fungují podle našich představ, nezapomeňte tedy na naše diskusní fórum Práva, které je určené právě pro tuto problematiku.
Žádné komentáře:
Okomentovat