X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/d5e65e582a34ae2494fee493ddcb2b959e4a4bce..7c5bfbe2b614b1cadc13fcab2a427abc711579b0:/doc/todo/ACL.mdwn?ds=sidebyside diff --git a/doc/todo/ACL.mdwn b/doc/todo/ACL.mdwn index 6b23acfae..d40701d60 100644 --- a/doc/todo/ACL.mdwn +++ b/doc/todo/ACL.mdwn @@ -23,6 +23,30 @@ something, that I think is very valuable. Also see [[!debbug 443346]]. +> Just a few quick thoughts about this: +> +>* I'm only thinking about write ACLs. As Joey noted, read ACLs need to be done in the web server. +>* ACLs are going to be really hard for people with direct access to the revision control system. +> Which means that we really only need to define ACLs for web access. +>* ACLs for web access can then be defined by the web master. These might not need to be +> defined in the wiki pages (although they could be). +>* Given the previous two points, can't this be done with the `match_user()` +> function defined by the [[plugins/attachment]] plugin (see the [[ikiwiki/pagespec/attachment]] pagespec info) +> and the [[plugins/lockedit]] plugin? +> +> For example, add the following to your config file: +> +> locked_pages => '!(user(john) and */Discussion) and *', +> +> would lock all pages unless you're john and editing a Discussion page. +> It's a thought anyway :-). -- [[Will]] + +>> Yes, writing per-user commit ACLs has become somewhat easier with recent +>> features. Breaking `match_user` out of attachment, and making the +>> lockedit plugin pass`user` and `ip` params when it calls `pagespec_match` +>> would be sufficient. And [[done]], configurable via +>> [[plugin/lockedit]]'s `locked_pages`. --[[Joey]] + I am considering giving this a try, implementing it as a module. Here is how I see it: @@ -45,3 +69,10 @@ Here is how I see it:
\[[!acl user=* page=/subsite/* acl=/subsite/acl.mdwn]]+ +Any idea when this is going to be finished? If you want, I am happy to beta test. + +> It's already done, though that is sorta hidden in the above. :-) +> Example of use to only allow two users to edit the tipjar page: +> locked_pages => 'tipjar and !(user(joey) or user(bob))', +> --[[Joey]]