We are using AuthUser for PmWiki access control.  I have two questions. 
Is there away to allow access for everyone except members of a group?
Is there a variable like $AuthId that tracks the group of a user?  I am mostly 
interested in using this for testing, so ideally it would be the group 
membership that allowed access to a page.

More details of our configuration and requirements.

We are using htpasswd and htgroup files to define users and groups.  Currently 
we require a login for any access to the wiki and some page groups are further 
protected so that only members of a specific group can access those pages.  
Here are the relevant lines from our config.php:

$DefaultPasswords['admin'] = '@admin';
$DefaultPasswords['attr'] = '@admin';
$DefaultPasswords['edit'] = 'id:*';
$DefaultPasswords['upload'] = 'id:*';
$DefaultPasswords['read'] = 'id:*';    

$AuthUser['htpasswd'] = '/etc/pmwiki.passwd';
$AuthUser['htgroup']  = '/etc/pmwiki.group';
include_once("$FarmD/scripts/authuser.php");

This give the basic access requirement of a login in our htpasswd file for the 
entire site.  For wiki groups that require more restrictive access we change 
the attributes on the GroupAttributes page to have a read password of 
'@groupname' where the membership of groupname is defined in the htgroup file.

http://example.com/pmwiki/pmwiki.php?n=GroupName.GroupAttributes?action=attr

and the htgroup file has entries like

admin: paul jdash tom sue

There is a new requirement to allow a new group of users access to ONLY pages 
in their wiki group.  I could put everyone in a group 'all' and then make the 
default read access be '@all', but that requires maintaining that group.  Every 
time we add a new person we add them to 'all', making sure not to add the users 
with more restrictive rights.  Not terrible but it seemed like there might be a 
better way.

The AuthUser documentation describes a method of excluding individuals from 
password groups. The example of keeping Fred out of a group is 

 $DefaultPasswords['attr'] = array('id:*,-Fred');

I reasoned that since my new group included members who were only allowed to 
access pages in their group, I should be able to exclude them just as Fred is 
excluded in the example.  So I tried modifying my config.php like this:

$DefaultPasswords['read'] = array('id:*,-@specialgroup');     # I tried both of 
these.   
$DefaultPasswords['read'] = array('id:*','-@specialgroup');

I was hoping that everyone but members of @specialgroup would have default read 
access.  Then I could change the GroupAttibutes to allow @specialgroup read 
access to their pages. That does't seem to work.  Am I using the wrong syntax 
or doing things in the wrong order? Or is excluding a group not possible?

Paul


_______________________________________________
pmwiki-users mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-users

Reply via email to