I try to give a specific user read+edit+create+upload access for a specific namespace, as that user will act as an admin for pages in that namespace. So, I select the namespace, select "User" and type the username, and select all checkboxes for Read, Edit, Create and Upload.
Unfortunately, after Saving this, only Read+Edit rights are given to this user for the namespace entered. Create and Upload rights are omitted. (The conf/acl.auth contains "2" for this entry, where I had expected either "8" --highest right-- or "15" --begin 1+2+4+8.)
Also trying to update this entry (adding Create and Upload rights) does not result in the correct rights to be registered.
Bug analysis:
* HTML on the ACL page (with name and value attributes) seems to be correct.
* Function admin_acl_add($acl_scope, $acl_user, $acl_level) seems to be called with correct values:
acl_level = 8
* Since $acl_scope is namespace, it is "cm:*" in my case... thus containing "*" char.
* It seems that the test
if(strpos("*", $acl_scope) === false)
is not correct. It should be a test whether $acl_scope is a pagename (instead of a namespace), but it succeeds for "cm:*". Result is that $acl_level is set back to "2".
Bug fix:
* arguments for strpos() are in the wrong order. PHP definition (at least in PHP 4) is
strpos(haystack, needle [, offset])
so the call should be
if(strpos($acl_scope, "*") === false)
-- Jochem Schulenklopper,
j.schulenklopper@gmail.com