Add login_group configuration option so only members of a certain group can login

This commit is contained in:
Craig Andrews 2009-11-18 14:35:44 -05:00
parent d07df8a796
commit 44c7813ac1
2 changed files with 20 additions and 2 deletions

View File

@ -49,6 +49,7 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin
public $provider_name = null; public $provider_name = null;
public $uniqueMember_attribute = null; public $uniqueMember_attribute = null;
public $roles_to_groups = null; public $roles_to_groups = null;
public $login_group = null;
function onInitializePlugin(){ function onInitializePlugin(){
parent::onInitializePlugin(); parent::onInitializePlugin();
@ -77,8 +78,23 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin
if($user_username->find() && $user_username->fetch()){ if($user_username->find() && $user_username->fetch()){
$entry = $this->ldap_get_user($user_username->username); $entry = $this->ldap_get_user($user_username->username);
if($entry){ if($entry){
//if a user exists, we can assume he's allowed to login if(isset($this->login_group)){
return true; if(is_array($this->login_group)){
foreach($this->login_group as $group){
if($this->isMemberOfGroup($entry->dn(),$group)){
return true;
}
}
}else{
if($this->isMemberOfGroup($entry->dn(),login_group)){
return true;
}
}
return null;
}else{
//if a user exists, we can assume he's allowed to login
return true;
}
}else{ }else{
return null; return null;
} }

View File

@ -18,6 +18,8 @@ uniqueMember_attribute ('uniqueMember')*: the attribute of a group
that lists the DNs of its members that lists the DNs of its members
roles_to_groups*: array that maps StatusNet roles to LDAP groups roles_to_groups*: array that maps StatusNet roles to LDAP groups
some StatusNet roles are: moderator, administrator, sandboxed, silenced some StatusNet roles are: moderator, administrator, sandboxed, silenced
login_group: if this is set to a group DN, only members of that group will be
allowed to login
The below settings must be exact copies of the settings used for the The below settings must be exact copies of the settings used for the
corresponding LDAP Authentication plugin. corresponding LDAP Authentication plugin.