Nyní jsou pro autorizaci použity entity jako jsou uživatel, role a uživatelská skupina.
V novém systému pracujeme standardně se 4 rolemi. Při prvním připojení dostane automaticky každý roli Anonymous. Po loginu se změní na roli Authenticated.
V následující tabulce je znázorněno, jaké aktivity může provádět která role.
Oprávnění k aktivitě | Role | |||
---|---|---|---|---|
Anonymous | Asserted | Authenticated | Admin | |
zobrazit stránky | x | x | x | x |
editovat stránky | x | x | ||
vytvářet stránky | x | x | ||
přejmenovávat stránky | x | |||
souborové přílohy ke stránkám | x | x | ||
komentáře ke stránkám | x (jen několik konkrétních stran) | x | x | |
mazat stránky | x | |||
vytvářet skupiny | x |
Ve spodní části obrazovky jsou odkazy na tyto aktivity viditelné pouze když jsou povolené. Pokud chcete editovat stránku, je potřeba se nejdříve nalogovat, a poté bude viditelná akce Upravit stránku.
Každý editor stránky může pomocí speciálního tagu omezit přístup na tuto stránku. Dělá se to pomocí tzv. ACL (access control lists) tagů.
Syntaxe je
[{ALLOW akce kdo}]
Která nastavuje, "kdo" (seznamu) smí dělat "akci" s touto stranou.
Př.
[{ALLOW view Janne,Mike Morris}]
Stránka je viditelná pouze uživatelům Janne,Mike Morris.
[{ALLOW view Janne,Mike Morris,Ucitele}] [{ALLOW edit Ucitele}]
Strana je viditelná třem uživatelům a všem co patří do skupiny učitelé. Učitelé smí tuto stránku i editovat.
Pro umožnění vkládání příloh uživateli Janne je nutné na stránce s ACL tagy přidat:
[{ALLOW upload Janne}]
Běžný případ stránek určitého předmětu na PowerWiki by tedy mohl vypadat například jako:
[{ALLOW view All}] [{ALLOW edit,upload Ucitele}]
Nový způsob autorizací umožňuje veřejná diskusní fóra pro anonymní uživatele. Tuto vlastnost je potřeba používat obezřetně, neboť otevírá možnost ke spamu. Na PowerWiki je zatím dovoleno přidávat komentáře veřejnosti jen na jedné stránce (v levém menu je to položka Veřejné fórum). Je možné toto právo přidat k jakékoli stránce, musí se však definovat v konfiguračním souboru, a nejde povolit pomocí ACL. Pokud bude zájem o přidání možnosti veřejných komentářů na určitou stránku, kontaktujte Admina.
Více informací je možné si přečíst zde.
Takže místo
[{Table | [{nbsp count='10'}] |Aaa | [{nbsp count='10'}] }]
Prostě můžeme psát přímo
[{Table | [{nbsp count='10'}] |Aaa | [{nbsp count='10'}] }]
Na stránkách, kde jsou použity escape sekvence je nutné je vyhodit. Vzhledem k tomu, že nové editační okno má funkci najít/nahradit, tak je to poměrně triviální oprava.
ad 1) Problém je v tom, že ve verzi 2.2 byl login zavolaný přímo požadavkem na aktivitu editace. V nové verzi je záložka "Upravit stránku" viditelná až po loginu. Jednoduchým řešením by bylo, aby tato záložka byla viditelná vždy, a pří prvním použití systém požádal dialogem o login (stejně jako ve verzi 2.2)
Je to chování, jaké chceme? Můžu to takto jednoduše opravit.
ad 2) Pokud uživatel klikne na symbol sponky u souboru přílohy v seznamu, pak se otevře dialog s informacemi o příloze. V případě, že má uživatel právo mazat, vidí i tlačítko "Delete attachment".
V současnosti má právo delete pouze role Admin. Pokud se domluvíme, pak můžu toto právo přidat i uživatel s rolí Authenticated. Zatím jsem ale raději volil přísnější bezpečnostní politiku.
pozn. 1: Pokud by toto právo bylo automaticky přiděleno i všem s rolí "Authenticated", pak by byla jediná obrana proti neobnovitelnému smazání stránky nebo přílohy jen explicitní zákaz pomocí ACL přímo ve stránce. Nyní je tato destruktivní funkce dostupná jen velice omezenému počtu uživatelů s rolí Admin.
pozn. 2: Můžeme si určit metodiku, např. kdy uživatel, který chce něco smazat, jednoduše název této stránky nebo odkazu napíše do speciální stránky např. "KeSmazani" do seznamu.
Potom Admin v pravidelných intervalech (1-n x týdně) provede postup:
1) nahlédne do této stránky
2) zkontroluje podle historie, kdo přidal jednotlivé řádky
3) zjistí, zda daný uživatel má nárok na smazání
4) a provede smazání
Vypadá to krkolomně, ale můžeme vymyslet i lepší metodiku.
ad 3) Povolení veřejných komentářů (od kohokoli) pro jednotlivé stránky je již možné. Jediné omezení je, že pokud se rozhodneme povolit veřejné komentáře ke své stránce, je nutné poslat jméno stránky Adminovi, který ji sám přidá do speciálního seznamu.
Opět je tu možnost veřejné komentáře implicitně povolit pro každou stránku (a pro vybrané stránky zakázat), ale bezpečnější je opačný postup. Nicméně jsem otevřený diskusi na touto politikou.
1. Po prihlaseni na strance, kterou chci editovat, dojde k presmerovani na hlavni stranku, coz neni zavazny nedostatek, ale je to "zdrzovacka" (ve starsi verzi k tomu nedochazi).
2. Libi se mi "List of Attachements", kdyz uz neco takoveho je, nelze k tomu pridat editacni tlacitka (pridej,smaz)? Trosku mi schazi moznost mazani priloh, otravovat kvuli kazdemu souboru admina....
3. Chapu ze spam je problem, nicmene verejna fora napr. k jednotlivym predmetum/strankam vidim jako velmi uzitecnou vec a registrovat kazdeho navstevnika asi neni dobry napad (nebo je?). Proto bych do budoucna uvital bud povoleni verejnych komentaru pro jednotlive stranky, nebo vytvoreni strukturovaneho moderovaneho verejneho fora.
R.
Volbu "odhlásit se" přidám. Standardně tam byla, ale nebyl jsem si jist její užitečností.
Právo vytvářet skupiny má zatím jen uživatel s rolí Admin. Po přilogování uživatele s touto rolí se v dolní části (aktivit) objeví i položka "Create group".
Do pole "Group name" je potřeba vyplnit název nové skupiny. (opět apeluji na nepoužívání diakritiky) Do pole "Members" se zadá seznam členů oddělený čárkami.
Po stlačení tlačítka "Save" je nová skupina vytvořena. (Hází to sice error hlášku, ale skupina je skutečně vytvořena - opravím později)
Skupina je ve skutečnosti nově vzniklá wiki stránka, která má jméno GroupXXXX, kde XXXX je zadané jméno skupiny.
Když se pokusíme otevřít tuto stránku, pak se objeví nápis "This is a wiki group. Edit this page to see its members."
Když poté zkusíme editovat stránku přes akci "Upravit stránku", tak uvidíme v obsahu zhruba toto.
[{ALLOW edit XXXX}] [{SET members='xkrumpha,bina'}] This is a wiki group. Edit this page to see its members.
a pak ji můžeme dále editovat přímo. Jak vidíte, editace stránky je umožněna členům této skupiny. (a Adminům)
To make role-based access controls more flexible, JSPWiki allows users to create wiki groups. These are special roles that users create themselves. Users create wiki groups by clicking on the front page link Create a new group. The JSP NewGroup.jsp opens. The user gives the group a name and enumerates its members. The "save" button creates a new wiki page with the prefix "Group" that contains the membership list. By defaut, any member listed in the group member list can edit the group.