/** * Configuration Action for Super Admins */ public function actionIndex() { $form = new EditForm(); $form->title = Setting::Get('title', 'breakingnews'); $form->message = Setting::GetText('message', 'breakingnews'); $form->active = Setting::Get('active', 'breakingnews'); if ($form->load(Yii::$app->request->post()) && $form->validate()) { Setting::Set('title', $form->title, 'breakingnews'); Setting::SetText('message', $form->message, 'breakingnews'); if ($form->active) { Setting::Set('active', true, 'breakingnews'); } else { Setting::Set('active', false, 'breakingnews'); } if ($form->reset) { foreach (\humhub\modules\user\models\Setting::findAll(array('name' => 'seen', 'module_id' => 'breakingnews')) as $userSetting) { $userSetting->delete(); } } return $this->redirect(Url::to(['/breakingnews/admin/index'])); } return $this->render('index', ['model' => $form]); }
/** * Returns all available updates for a given version * * @param type $version */ public static function getAvailableUpdate() { $info = []; if (class_exists('\\humhub\\modules\\admin\\libs\\HumHubAPI')) { $info = \humhub\modules\admin\libs\HumHubAPI::request('v1/modules/getHumHubUpdates', ['updaterVersion' => Yii::$app->getModule('updater')->version]); } else { // older Versions try { $url = Yii::$app->getModule('admin')->marketplaceApiUrl . "getHumHubUpdates?version=" . Yii::$app->version . "&updaterVersion=" . Yii::$app->getModule('updater')->version . "&installId=" . Setting::Get('installationId', 'admin'); $http = new \Zend\Http\Client($url, array('adapter' => '\\Zend\\Http\\Client\\Adapter\\Curl', 'curloptions' => Yii::$app->getModule('updater')->getCurlOptions(), 'timeout' => 30)); $response = $http->send(); $info = Json::decode($response->getBody()); } catch (Exception $ex) { throw new Exception(Yii::t('UpdaterModule.base', 'Could not get update info online! (%error%)', array('%error%' => $ex->getMessage()))); } } if (!isset($info['fromVersion'])) { return null; } $package = new UpdatePackage($info['fileName'], $info['fromVersion'], $info['toVersion']); $package->md5 = $info['md5']; $package->downloadUrl = $info['downloadUrl']; return $package; }
/** * Before Delete of a User * */ public function beforeDelete() { // We don't allow deletion of users who owns a space - validate that foreach (\humhub\modules\space\models\Membership::GetUserSpaces($this->id) as $space) { if ($space->isSpaceOwner($this->id)) { throw new Exception("Tried to delete a user which is owner of a space!"); } } // Disable all enabled modules foreach ($this->getAvailableModules() as $moduleId => $module) { if ($this->isModuleEnabled($moduleId)) { $this->disableModule($moduleId); } } // Delete profile image $this->getProfileImage()->delete(); // Remove from search index Yii::$app->search->delete($this); // Cleanup related tables Invite::deleteAll(['user_originator_id' => $this->id]); Follow::deleteAll(['user_id' => $this->id]); Follow::deleteAll(['object_model' => $this->className(), 'object_id' => $this->id]); Password::deleteAll(['user_id' => $this->id]); Profile::deleteAll(['user_id' => $this->id]); GroupAdmin::deleteAll(['user_id' => $this->id]); Session::deleteAll(['user_id' => $this->id]); Setting::deleteAll(['user_id' => $this->id]); return parent::beforeDelete(); }
/** * 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()); } }