Zabezpečení před neoprávněným přístupem do administrace

Do administračního rozhraní mají přístup pouze uživatelé, kteří patří do skupiny uživatelů editor (což jsou automaticky i členové skupin adminsysAdmin – viz Zabezpečení a uživatelská práva). Skupina uživatelů user přístup do administrace nemá, ta se využívá jen pro zabezpečení stránky nebo její části. Ve výchozím nastavení platí, že každý uživatel, který má do administrace přístup, má také přístup k editaci veškerého obsahu.

Pro řízení přístupu k jednotlivých proměnným a kolekcím nebo dokonce jen jejich vybraným polím slouží atributy allowEditFordenyEditFor elementů Var, Collection a všech elementů představujících jednotlivá datová pole (např. <SimpleText>, <Img>, ...) v deklaracích uvedených v Site.config. Na rozdíl od zabezpečení stránky nebo její části není možné v administraci omezit přístup k jednotlivým prvkům kolekce, ale pouze ke kolekci jako celku.

Příklad

Máme blog a na něm pod každým článkem diskuzní fórum. Návštěvnost měříme pomocí Google Analytics. Měřící kód zadáváme do proměnné přes administrační rozhraní. Chceme, aby měřící kód mohl měnit pouze uživatel ze skupiny sysAdmin a aby diskuzi ke článkům mohl spravovat kromě sysAdmin i moderátor z uživatelsky definované skupiny uživatelů moderator. Jak se uživatel stane členem skupiny moderator je popsáno v Zabezpečení a uživatelská práva v kapitole Uživatelsky definované skupiny uživatelů.

Site.config si v části UserGroupSets zavedeme uživatelskou skupinu moderátora diskuze:

...
<UserGroupSets>
    <UserGroup name="moderator" title="Moderator" />
</UserGroupSets>
...

Pro tento účel nám to takto plně postačuje. Skupinu moderatorsysAdmin nyní použijeme v atributech allowEditFor (příp. denyEditFor) u deklarovaných proměnných nebo kolekcí nebo jejich jednotlivch polí:

...
<Vars>
    <Collection name="article" type="ArticleItem" />
    <Var name="analyticsCode" type="AnalyticsCode" allowEditFor="sysAdmin" />
</Vars>
...
<Types>
    <Type name="ArticleItem">
        <SimpleText name="title" />
        <Text name="text" />
        <Collection name="comment"
                    type="ArticleCommentItem"
                    allowEditFor="sysAdmin, moderator" />
    </Type>
    <Type name="ArticleCommentItem">
        <SimpleText name="email" />
        <Date name="date" />
        <Text name="message" />
        ...
    </Type>
    <Type name="AnalyticsCode">
        <Text name="code" textInterpratation="html" />
    </Type>
</Types>
...

Připomínky a postřehy

Máte-li nějakou připomínku, dobrý nápad nebo jste našli v dokumentaci chybu, rádi od vás uslyšíme.