/** * Sets an UserSetting * * @param String $name * @param String $value * @param String $moduleId */ public function setSetting($name, $value, $moduleId = "") { Setting::Set($this->owner->id, $name, $value, $moduleId); }
/** * Reads out all users from configured ldap backend and creates or update * existing users. * * Also disabling deleted ldap users in humhub */ public function refreshUsers() { $ldapUserIds = array(); try { $items = $this->ldap->search(Setting::Get('userFilter', 'authentication_ldap'), Setting::Get('baseDn', 'authentication_ldap'), \Zend\Ldap\Ldap::SEARCH_SCOPE_SUB); foreach ($items as $item) { $node = \Zend\Ldap\Node::fromArray($item); $user = $this->handleLdapUser($node); if ($user != null) { $ldapUserIds[] = $user->id; } } foreach (User::find()->where(['auth_mode' => User::AUTH_MODE_LDAP])->each() as $user) { if (!in_array($user->id, $ldapUserIds)) { if ($user->status != User::STATUS_DISABLED) { // User no longer available in ldap $user->status = User::STATUS_DISABLED; \humhub\modules\user\models\Setting::Set($user->id, 'disabled_by_ldap', true, 'user'); $user->save(); Yii::warning('Disabled user ' . $user->username . ' (' . $user->id . ') - Not found in LDAP!'); } } else { if ($user->status == User::STATUS_DISABLED && \humhub\modules\user\models\Setting::Get($user->id, 'disabled_by_ldap', 'user', false)) { // User no longer available in ldap $user->status = User::STATUS_ENABLED; \humhub\modules\user\models\Setting::Set($user->id, 'disabled_by_ldap', '', 'user'); $user->save(); Yii::info('Reenabled disabled user ' . $user->username . ' (' . $user->id . ') - Found again in LDAP!'); } } } } catch (Exception $ex) { Yii::error($ex->getMessage()); } }