Add login_group configuration option so only members of a certain group can login
This commit is contained in:
parent
d07df8a796
commit
44c7813ac1
|
@ -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(isset($this->login_group)){
|
||||||
|
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
|
//if a user exists, we can assume he's allowed to login
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user