Move responsibility for adding new users in to the user directory

Relates to: #55
This commit is contained in:
Thomas Pike
2021-11-07 11:37:56 +01:00
parent 946c6ff74d
commit 17880542d1
4 changed files with 7 additions and 6 deletions

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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();
}

View File

@@ -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');