== Example == {{{ # acl.default.php # # Please don't modify the lines above # # A sample Access Control Lists file for Moniwiki # # $Id: WikiACL,v 1.2 2006/07/09 14:23:23 wkpark Exp wkpark $ @Guest Anonymous * @ALL deny * * @ALL allow ticket * @User allow * # some pages are allowed to edit WikiSandBox @Guest allow edit,info,diff #* Anonymous deny * # some POST actions support protected mode using admin password * @ALL protect deletefile,deletepage,rename,rcspurge,rcs,chmod,backup,restore # some actions allowed to @ALL * @ALL allow read,userform,rss_rc,aclinfo,fortune,deletepage,fixmoin,ticket # some pages have restrict permission MoniWiki @ALL deny edit,uploadfile,diff }}} == Predefined @group == * @ALL: all users (priority: 1) * @User: registered users (priority: 2) == User define @Group and @Group priority == {{{ ##@groupname userlist [priority] @Guest Anonymous # default group priority is 2 @Kiwirian foobar,kiwi,hello123 20 # @Kiwirain group }}} == ACL entry type == * `allow` * `deny` * `protect`: protect some password protected POST actions (not all actions are protectable) == ACL matching procedure == === with same priority === Last ACL entry is used. * {{{allow *}}} + {{{deny *}}} = {{{deny *}}} * {{{deny *}}} + {{{allow *}}} = {{{allow *}}} * {{{deny *}}} + {{{allow edit,info}}} = only edit,info available * {{{allow *}}} + {{{deny info,diff}}} = === with different priority === {{{ @Group1 peter,john 20 # priority = 20 @Group2 simon,soo # default group priorty = 2 * @ALL allow * # group priority = 1 * @ALL deny backup,restore * @Guest deny * # group priority = 2 * @Group1 deny * # User defined @Group1 group * @Group1 allow read,info,diff * @Group2 deny info,diff }}} * peter and john: {{{allow read,info,diff}}} + {{{deny *}}} * Anonymous (@Guest): {{{deny *}}} * all other registered users: '''Order Deny,Allow''' - {{{deny backup,resotre}}} + {{{allow *}}} * @Group1 : '''Order Allow,Deny''' - {{{allow read,info,diff}}} + {{{deny *}}} * @Group2 : {{{deny info,diff}}} + {{{@ALL deny backup,restore}}} + {{{allow *}}} * /!\ merge all ACL entries with same group priority.