/**
  * 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;
 }
Exemple #3
0
 /**
  * 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();
 }
Exemple #4
0
 /**
  * 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());
     }
 }