mirror of
https://github.com/operasoftware/ssh-key-authority.git
synced 2025-12-16 18:04:15 -06:00
Move responsibility for adding new users in to the user directory
Relates to: #55
This commit is contained in:
@@ -298,7 +298,7 @@ class User extends Entity {
|
||||
* @throws UserNotFoundException if the user is not found in LDAP
|
||||
*/
|
||||
public function get_details_from_ldap() {
|
||||
global $config, $group_dir;
|
||||
global $config, $group_dir, $user_dir;
|
||||
$attributes = array();
|
||||
$attributes[] = 'dn';
|
||||
$attributes[] = $config['ldap']['user_id'];
|
||||
@@ -324,13 +324,18 @@ class User extends Entity {
|
||||
} else {
|
||||
$this->active = 1;
|
||||
}
|
||||
$this->admin = 0;
|
||||
$group_member = $ldapuser[strtolower($config['ldap']['group_member_value'])];
|
||||
$ldapgroups = $this->ldap->search($config['ldap']['dn_group'], LDAP::escape($config['ldap']['group_member']).'='.LDAP::escape($group_member), array('cn'));
|
||||
$memberships = array();
|
||||
foreach($ldapgroups as $ldapgroup) {
|
||||
$memberships[$ldapgroup['cn']] = true;
|
||||
}
|
||||
$this->admin = isset($memberships[$config['ldap']['admin_group_cn']]);
|
||||
if(isset($this->id)) {
|
||||
$this->update();
|
||||
} else {
|
||||
$user_dir->add_user($this);
|
||||
}
|
||||
if(isset($config['ldap']['sync_groups']) && is_array($config['ldap']['sync_groups'])) {
|
||||
$syncgroups = $config['ldap']['sync_groups'];
|
||||
} else {
|
||||
@@ -347,7 +352,6 @@ class User extends Entity {
|
||||
$group_dir->add_group($group);
|
||||
}
|
||||
if(isset($memberships[$syncgroup])) {
|
||||
if($syncgroup == $config['ldap']['admin_group_cn']) $this->admin = 1;
|
||||
if(!$this->member_of($group)) {
|
||||
$group->add_member($this);
|
||||
}
|
||||
|
||||
@@ -97,7 +97,6 @@ class UserDirectory extends DBDirectory {
|
||||
$user->uid = $uid;
|
||||
$this->cache_uid[$uid] = $user;
|
||||
$user->get_details_from_ldap();
|
||||
$this->add_user($user);
|
||||
}
|
||||
$stmt->close();
|
||||
return $user;
|
||||
|
||||
@@ -40,7 +40,6 @@ foreach($users as $user) {
|
||||
$active = $user->active;
|
||||
try {
|
||||
$user->get_details_from_ldap();
|
||||
$user->update();
|
||||
if(isset($config['ldap']['user_superior'])) {
|
||||
$user->get_superior_from_ldap();
|
||||
}
|
||||
|
||||
@@ -49,7 +49,6 @@ if(isset($_POST['reassign_servers']) && is_array($_POST['servers']) && $active_u
|
||||
} elseif(isset($_POST['edit_user']) && $active_user->admin) {
|
||||
$user->force_disable = $_POST['force_disable'];
|
||||
$user->get_details_from_ldap();
|
||||
$user->update();
|
||||
redirect('#settings');
|
||||
} else {
|
||||
$content = new PageSection('user');
|
||||
|
||||
Reference in New Issue
Block a user