/** * 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)); }
public function testDynamicConfig() { HSetting::Set('theme', 'HumHub2'); $config = HSetting::getConfiguration(); $this->assertArrayHasKey('theme', $config); $this->assertEquals($config['theme'], 'HumHub2'); }
/** * 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)); }
/** * Disables application cache */ public function actionDisable() { HSetting::Set('type', 'CDummyCache', 'cache'); print "Application Cache disabled!\n"; }
/** * 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)); }
/** * 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)); }
/** * 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(); }
/** * 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()); } }
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); }