/**
  * Configuration Action for Super Admins
  */
 public function actionIndex()
 {
     Yii::import('library.forms.*');
     $form = new LibraryAdminForm();
     // uncomment the following code to enable ajax-based validation
     //if (isset($_POST['ajax']) && $_POST['ajax'] === 'LibraryAdminForm') {
     //    echo CActiveForm::validate($form);
     //    Yii::app()->end();
     //}
     if (isset($_POST['LibraryAdminForm'])) {
         $_POST['LibraryAdminForm'] = Yii::app()->input->stripClean($_POST['LibraryAdminForm']);
         $form->attributes = $_POST['LibraryAdminForm'];
         if ($form->validate()) {
             $form->globalPublicLibrary = HSetting::Set('globalPublicLibrary', $form->globalPublicLibrary, 'library');
             $form->disclaimerWidget = HSetting::Set('disclaimerWidget', $form->disclaimerWidget, 'library');
             $form->disclaimerTitle = HSetting::Set('disclaimerTitle', $form->disclaimerTitle, 'library');
             $form->disclaimerContent = HSetting::Set('disclaimerContent', $form->disclaimerContent, 'library');
             $this->redirect(Yii::app()->createUrl('library/admin/index'));
         }
     } else {
         $form->globalPublicLibrary = HSetting::Get('globalPublicLibrary', 'library');
         $form->disclaimerWidget = HSetting::Get('disclaimerWidget', 'library');
         $form->disclaimerTitle = HSetting::Get('disclaimerTitle', 'library');
         $form->disclaimerContent = HSetting::Get('disclaimerContent', 'library');
     }
     $this->render('index', array('model' => $form));
 }
Example #2
0
 public function testDynamicConfig()
 {
     HSetting::Set('theme', 'HumHub2');
     $config = HSetting::getConfiguration();
     $this->assertArrayHasKey('theme', $config);
     $this->assertEquals($config['theme'], 'HumHub2');
 }
Example #3
0
 /**
  * Do general tasks used application whide
  */
 protected function doBaseTasks()
 {
     $this->showTestHeadline("Checking application base structure");
     if (HSetting::Get('secret') == "" || HSetting::Get('secret') == null) {
         HSetting::Set('secret', UUID::v4());
         $this->showFix('Setting missing application secret!');
     }
 }
 public function up()
 {
     $allowedExtensions = HSetting::Get('allowedExtensions', 'file');
     if ($allowedExtensions != "") {
         HSetting::Set('allowedExtensions', '', 'file');
         HSetting::SetText('allowedExtensions', $allowedExtensions, 'file');
     }
     $showFilesWidgetBlacklist = HSetting::Get('showFilesWidgetBlacklist', 'file');
     if ($showFilesWidgetBlacklist != "") {
         HSetting::Set('showFilesWidgetBlacklist', '', 'file');
         HSetting::SetText('showFilesWidgetBlacklist', $showFilesWidgetBlacklist, 'file');
     }
 }
 /**
  * Delete All Albums and settings.
  */
 public function disable()
 {
     if (parent::disable()) {
         foreach (Album::model()->findAll() as $album) {
             $album->delete();
         }
         $blacklisted_objects = explode(',', HSetting::Get('showFilesWidgetBlacklist', 'file'));
         if (false !== ($key = array_search('Album', $blacklisted_objects))) {
             unset($blacklisted_objects[$key]);
             HSetting::Set('showFilesWidgetBlacklist', implode(',', $blacklisted_objects));
         }
         HSetting::set('allowedExtensions', '', 'album');
         return true;
     }
     return false;
 }
 public function actionSettings()
 {
     $form = new RoomsSettingsForm();
     $form->defaultJoinPolicy = HSetting::Get('defaultJoinPolicy', 'room');
     $form->defaultVisibility = HSetting::Get('defaultVisibility', 'room');
     // uncomment the following code to enable ajax-based validation
     if (isset($_POST['ajax']) && $_POST['ajax'] === 'rooms-settings-form') {
         echo CActiveForm::validate($form);
         Yii::app()->end();
     }
     if (isset($_POST['RoomsSettingsForm'])) {
         $_POST['RoomsSettingsForm'] = Yii::app()->input->stripClean($_POST['RoomsSettingsForm']);
         $form->attributes = $_POST['RoomsSettingsForm'];
         if ($form->validate()) {
             HSetting::Set('defaultJoinPolicy', $form->defaultJoinPolicy, 'room');
             HSetting::Set('defaultVisibility', $form->defaultVisibility, 'room');
             // set flash message
             Yii::app()->user->setFlash('data-saved', Yii::t('RoomsModule.controllers_SpaceController', 'Saved'));
             $this->redirect($this->createUrl('settings'));
         }
     }
     $this->render('settings', array('model' => $form));
 }
 /**
  * Configuration Action for Super Admins
  */
 public function actionIndex()
 {
     Yii::import('yiigii.forms.*');
     $form = new ConfigureForm();
     // uncomment the following code to enable ajax-based validation
     if (isset($_POST['ajax']) && $_POST['ajax'] === 'configure-form') {
         echo CActiveForm::validate($form);
         Yii::app()->end();
     }
     if (isset($_POST['ConfigureForm'])) {
         $_POST['ConfigureForm'] = Yii::app()->input->stripClean($_POST['ConfigureForm']);
         $form->attributes = $_POST['ConfigureForm'];
         if ($form->validate()) {
             $form->password = HSetting::Set('password', $form->password, 'yiigii');
             $form->ipFilters = HSetting::Set('ipFilters', $form->ipFilters, 'yiigii');
             $this->redirect(Yii::app()->createUrl('yiigii/config/index'));
         }
     } else {
         $form->password = HSetting::Get('password', 'yiigii');
         $form->ipFilters = HSetting::Get('ipFilters', 'yiigii');
     }
     $this->render('index', array('model' => $form));
 }
Example #8
0
 /**
  * Disables application cache
  */
 public function actionDisable()
 {
     HSetting::Set('type', 'CDummyCache', 'cache');
     print "Application Cache disabled!\n";
 }
Example #9
0
 /**
  * Deletes a user including all dependencies
  *
  * @return boolean
  */
 public function delete()
 {
     GroupAdmin::model()->deleteAllByAttributes(array('group_id' => $this->id));
     // Clear Default User Group for Registration if needed
     if (HSetting::Get('defaultUserGroup', 'authentication_internal') == $this->id) {
         HSetting::Set('defaultUserGroup', '', 'authentication_internal');
     }
     return parent::delete();
 }
 /**
  * File Settings
  */
 public function actionFile()
 {
     Yii::import('admin.forms.*');
     $form = new FileSettingsForm();
     $form->imageMagickPath = HSetting::Get('imageMagickPath', 'file');
     $form->maxFileSize = HSetting::Get('maxFileSize', 'file') / 1024 / 1024;
     $form->useXSendfile = HSetting::Get('useXSendfile', 'file');
     $form->forbiddenExtensions = HSetting::Get('forbiddenExtensions', 'file');
     // Ajax Validation
     if (isset($_POST['ajax']) && $_POST['ajax'] === 'file-settings-form') {
         echo CActiveForm::validate($form);
         Yii::app()->end();
     }
     if (isset($_POST['FileSettingsForm'])) {
         $_POST['FileSettingsForm'] = Yii::app()->input->stripClean($_POST['FileSettingsForm']);
         $form->attributes = $_POST['FileSettingsForm'];
         if ($form->validate()) {
             $form->imageMagickPath = HSetting::Set('imageMagickPath', $form->imageMagickPath, 'file');
             $form->maxFileSize = HSetting::Set('maxFileSize', $form->maxFileSize * 1024 * 1024, 'file');
             $form->useXSendfile = HSetting::Set('useXSendfile', $form->useXSendfile, 'file');
             $form->forbiddenExtensions = HSetting::Set('forbiddenExtensions', strtolower($form->forbiddenExtensions), 'file');
             // set flash message
             Yii::app()->user->setFlash('data-saved', Yii::t('AdminModule.controllers_SettingController', 'Saved and flushed cache'));
             $this->redirect(Yii::app()->createUrl('//admin/setting/file'));
         }
     }
     // Determine PHP Upload Max FileSize
     $maxUploadSize = Helpers::GetBytesOfPHPIniValue(ini_get('upload_max_filesize'));
     if ($maxUploadSize > Helpers::GetBytesOfPHPIniValue(ini_get('post_max_size'))) {
         $maxUploadSize = Helpers::GetBytesOfPHPIniValue(ini_get('post_max_size'));
     }
     $maxUploadSize = floor($maxUploadSize / 1024 / 1024);
     // Determine currently used ImageLibary
     $currentImageLibary = 'GD';
     if (HSetting::Get('imageMagickPath', 'file')) {
         $currentImageLibary = 'ImageMagick';
     }
     $this->render('file', array('model' => $form, 'maxUploadSize' => $maxUploadSize, 'currentImageLibary' => $currentImageLibary));
 }
Example #11
0
 /**
  * Proxy Settings
  */
 public function actionProxy()
 {
     Yii::import('admin.forms.*');
     $form = new ProxySettingsForm();
     // uncomment the following code to enable ajax-based validation
     /*        if (isset($_POST['ajax']) && $_POST['ajax'] === 'design-settings-form') {
               echo CActiveForm::validate($form);
               Yii::app()->end();
               } */
     if (isset($_POST['ProxySettingsForm'])) {
         $_POST['ProxySettingsForm'] = Yii::app()->input->stripClean($_POST['ProxySettingsForm']);
         $form->attributes = $_POST['ProxySettingsForm'];
         if ($form->validate()) {
             HSetting::Set('enabled', $form->enabled, 'proxy');
             HSetting::Set('server', $form->server, 'proxy');
             HSetting::Set('port', $form->port, 'proxy');
             HSetting::Set('user', $form->user, 'proxy');
             HSetting::Set('password', $form->password, 'proxy');
             HSetting::Set('noproxy', $form->noproxy, 'proxy');
             // set flash message
             Yii::app()->user->setFlash('data-saved', Yii::t('AdminModule.controllers_ProxyController', 'Saved'));
             $this->redirect(Yii::app()->createUrl('//admin/setting/proxy'));
         }
     } else {
         $form->enabled = HSetting::Get('enabled', 'proxy');
         $form->server = HSetting::Get('server', 'proxy');
         $form->port = HSetting::Get('port', 'proxy');
         $form->user = HSetting::Get('user', 'proxy');
         $form->password = HSetting::Get('password', 'proxy');
         $form->noproxy = HSetting::Get('noproxy', 'proxy');
     }
     $this->render('proxy', array('model' => $form));
 }
Example #12
0
 /**
  * Setup some inital database settings.
  *
  * This will be done at the first step.
  */
 private function setupInitialData()
 {
     // Seems database is already initialized
     if (HSetting::Get('paginationSize') == 10) {
         return;
     }
     // Rebuild Search
     HSearch::getInstance()->rebuild();
     HSetting::Set('baseUrl', Yii::app()->getBaseUrl(true));
     HSetting::Set('paginationSize', 10);
     HSetting::Set('displayNameFormat', '{profile.firstname} {profile.lastname}');
     // Authentication
     HSetting::Set('authInternal', '1', 'authentication');
     HSetting::Set('authLdap', '0', 'authentication');
     HSetting::Set('needApproval', '0', 'authentication_internal');
     HSetting::Set('anonymousRegistration', '1', 'authentication_internal');
     HSetting::Set('internalUsersCanInvite', '1', 'authentication_internal');
     // Mailing
     HSetting::Set('transportType', 'php', 'mailing');
     HSetting::Set('systemEmailAddress', '*****@*****.**', 'mailing');
     HSetting::Set('systemEmailName', 'My Social Network', 'mailing');
     HSetting::Set('receive_email_activities', User::RECEIVE_EMAIL_DAILY_SUMMARY, 'mailing');
     HSetting::Set('receive_email_notifications', User::RECEIVE_EMAIL_WHEN_OFFLINE, 'mailing');
     // File
     HSetting::Set('maxFileSize', '1048576', 'file');
     HSetting::Set('forbiddenExtensions', 'exe', 'file');
     // Caching
     HSetting::Set('type', 'CFileCache', 'cache');
     HSetting::Set('expireTime', '3600', 'cache');
     HSetting::Set('installationId', md5(uniqid("", true)), 'admin');
     // Design
     HSetting::Set('theme', "HumHub");
     // Basic
     HSetting::Set('enable', 1, 'tour');
     // Add Categories
     $cGeneral = new ProfileFieldCategory();
     $cGeneral->title = "General";
     $cGeneral->sort_order = 100;
     $cGeneral->visibility = 1;
     $cGeneral->is_system = true;
     $cGeneral->description = '';
     $cGeneral->save();
     $cCommunication = new ProfileFieldCategory();
     $cCommunication->title = "Communication";
     $cCommunication->sort_order = 200;
     $cCommunication->visibility = 1;
     $cCommunication->is_system = true;
     $cCommunication->description = '';
     $cCommunication->save();
     $cSocial = new ProfileFieldCategory();
     $cSocial->title = "Social bookmarks";
     $cSocial->sort_order = 300;
     $cSocial->visibility = 1;
     $cSocial->is_system = true;
     $cSocial->description = '';
     $cSocial->save();
     // Add Fields
     $field = new ProfileField();
     $field->internal_name = "firstname";
     $field->title = 'Firstname';
     $field->sort_order = 100;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->ldap_attribute = 'givenName';
     $field->is_system = true;
     $field->required = true;
     $field->show_at_registration = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "lastname";
     $field->title = 'Lastname';
     $field->sort_order = 200;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->ldap_attribute = 'sn';
     $field->show_at_registration = true;
     $field->required = true;
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "title";
     $field->title = 'Title';
     $field->sort_order = 300;
     $field->ldap_attribute = 'title';
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "gender";
     $field->title = 'Gender';
     $field->sort_order = 300;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeSelect';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->options = "male=>Male\nfemale=>Female\ncustom=>Custom";
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "street";
     $field->title = 'Street';
     $field->sort_order = 400;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 150;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "zip";
     $field->title = 'Zip';
     $field->sort_order = 500;
     $field->profile_field_category_id = $cGeneral->id;
     $field->is_system = true;
     $field->field_type_class = 'ProfileFieldTypeText';
     if ($field->save()) {
         $field->fieldType->maxLength = 10;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "city";
     $field->title = 'City';
     $field->sort_order = 600;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "country";
     $field->title = 'Country';
     $field->sort_order = 700;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "state";
     $field->title = 'State';
     $field->sort_order = 800;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "birthday";
     $field->title = 'Birthday';
     $field->sort_order = 900;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeBirthday';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "about";
     $field->title = 'About';
     $field->sort_order = 900;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeTextArea';
     $field->is_system = true;
     if ($field->save()) {
         #$field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "phone_private";
     $field->title = 'Phone Private';
     $field->sort_order = 100;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "phone_work";
     $field->title = 'Phone Work';
     $field->sort_order = 200;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "mobile";
     $field->title = 'Mobile';
     $field->sort_order = 300;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "fax";
     $field->title = 'Fax';
     $field->sort_order = 400;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_skype";
     $field->title = 'Skype Nickname';
     $field->sort_order = 500;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_msn";
     $field->title = 'MSN';
     $field->sort_order = 600;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_icq";
     $field->title = 'ICQ Number';
     $field->sort_order = 700;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeNumber';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_xmpp";
     $field->title = 'XMPP Jabber Address';
     $field->sort_order = 800;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'email';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url";
     $field->title = 'Url';
     $field->sort_order = 100;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_facebook";
     $field->title = 'Facebook URL';
     $field->sort_order = 200;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_linkedin";
     $field->title = 'LinkedIn URL';
     $field->sort_order = 300;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_xing";
     $field->title = 'Xing URL';
     $field->sort_order = 400;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_youtube";
     $field->title = 'Youtube URL';
     $field->sort_order = 500;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_vimeo";
     $field->title = 'Vimeo URL';
     $field->sort_order = 600;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_flickr";
     $field->title = 'Flickr URL';
     $field->sort_order = 700;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_myspace";
     $field->title = 'MySpace URL';
     $field->sort_order = 800;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_googleplus";
     $field->title = 'Google+ URL';
     $field->sort_order = 900;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_twitter";
     $field->title = 'Twitter URL';
     $field->sort_order = 1000;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $group = new Group();
     $group->name = "Users";
     $group->description = "Example Group by Installer";
     $group->save();
 }
Example #13
0
 /**
  * Run method for CronRunner
  *
  * @param type $args
  */
 public function run($args)
 {
     $this->printHeader('Cron Interface');
     if (!isset($args[0]) || $args[0] != "daily" && $args[0] != 'hourly') {
         print "\n Run with parameter:\n" . "\t daily - for Daily Interval\n" . "\t hourly - for Hourly Interval \n";
         print "\n\n";
         exit;
     }
     // Set current interval to attribute
     if ($args[0] == 'daily') {
         $this->interval = self::INTERVAL_DAILY;
     } elseif ($args[0] == 'hourly') {
         $this->interval = self::INTERVAL_HOURLY;
     } else {
         throw new CException(500, 'Invalid cron interval!');
     }
     // Do some base tasks, handle by event in future
     if ($this->interval == self::INTERVAL_HOURLY) {
         // Raise Event for Module specific tasks
         if ($this->hasEventHandler('onHourlyRun')) {
             $this->onHourlyRun(new CEvent($this));
         }
         print "- Optimizing Search Index\n";
         // Optimize Search Index
         HSearch::getInstance()->Optimize();
         if (HSetting::Get('enabled', 'authentication_ldap') && HSetting::Get('refreshUsers', 'authentication_ldap')) {
             print "- Updating LDAP Users\n";
             HLdap::getInstance()->refreshUsers();
         }
         print "- Invoking EMailing hourly\n\n";
         // Execute Hourly Mailing Runner
         Yii::import('application.commands.shell.EMailing.*');
         $command = new EMailing('test', 'test');
         $command->run(array('hourly'));
         HSetting::Set('cronLastHourlyRun', time());
     } elseif ($this->interval == self::INTERVAL_DAILY) {
         // Raise Event for Module specific tasks
         if ($this->hasEventHandler('onDailyRun')) {
             $this->onDailyRun(new CEvent($this));
         }
         // Execute Daily Mailing Runner
         print "- Invoking EMailing daily\n\n";
         Yii::import('application.commands.shell.EMailing.*');
         $command = new EMailing('test', 'test');
         $command->run(array('daily'));
         HSetting::Set('cronLastDailyRun', time());
     }
 }
Example #14
0
 public function testGroupAssignment()
 {
     $group2 = new Group();
     $group2->name = "TestGrp1";
     $group2->description = "test";
     $this->assertTrue($group2->save());
     HSetting::Set('defaultUserGroup', $group2->id, 'authentication_internal');
     $user = new User();
     $user->username = "******";
     $user->email = "*****@*****.**";
     $this->assertTrue($user->save());
     $this->assertEquals($user->group_id, $group2->id);
 }