/** * Copyright (C) 2008-2013 Ulteo SAS * http://www.ulteo.com * Author Julien LANGLOIS <*****@*****.**> 2008-2013 * Author Laurent CLOUET <*****@*****.**> 2008-2011 * Author Jeremy DESVAGES <*****@*****.**> 2008-2011 * Author Vincent ROULLIER <*****@*****.**> 2013 * Author David LECHEVALIER <*****@*****.**> 2012 * Author David PHAM-VAN <*****@*****.**> 2013 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; version 2 * of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ function init_db($prefs_) { // prefs must be valid Logger::debug('main', 'init_db'); $modules_enable = $prefs_->get('general', 'module_enable'); foreach ($modules_enable as $module_name) { if (!is_null($prefs_->get($module_name, 'enable'))) { $enable = $prefs_->get($module_name, 'enable'); if (is_string($enable)) { $mod_name = $module_name . '_' . $enable; $ret_eval = call_user_func(array($mod_name, 'init'), $prefs_); if ($ret_eval !== true) { Logger::error('main', 'init_db init module \'' . $mod_name . '\' failed'); return false; } } elseif (is_array($enable)) { foreach ($enable as $sub_module) { $mod_name = $module_name . '_' . $sub_module; $ret_eval = call_user_func(array($mod_name, 'init'), $prefs_); if ($ret_eval !== true) { Logger::error('main', 'init_db init module \'' . $mod_name . '\' failed'); return false; } } } } } Logger::debug('main', 'init_db modules inited'); // Init of Abstract Abstract_Server::init($prefs_); Abstract_ServersGroup::init($prefs_); Abstract_Session::init($prefs_); Abstract_Token::init($prefs_); Abstract_News::init($prefs_); Abstract_Script::init($prefs_); Abstract_Liaison::init($prefs_); if (class_exists("PremiumManager")) { PremiumManager::initdb($prefs_); } Abstract_Task::init($prefs_); Abstract_ReportServer::init($prefs_); Abstract_ReportSession::init($prefs_); Abstract_User_Preferences::init($prefs_); Abstract_UserGroup_Preferences::init($prefs_); Abstract_UserGroup_Rule::init($prefs_); Abstract_VDI::init($prefs_); Abstract_Network_Folder::init($prefs_); Abstract_AdminAction::init($prefs_); return true; }
} unset($_SESSION['from_Client_start_XML']); if (class_exists("PremiumManager") && PremiumManager::is_premium()) { if (!PremiumManager::can_start_session()) { throw_response(SERVICE_NOT_AVAILABLE); } } $user = $sessionManagement->user; $default_settings = $user->getSessionSettings('session_settings_defaults'); $session_mode = $default_settings['session_mode']; $timeout = $default_settings['timeout']; $allow_shell = $default_settings['allow_shell']; $multimedia = $default_settings['multimedia']; $redirect_client_drives = $default_settings['redirect_client_drives']; $redirect_client_printers = $default_settings['redirect_client_printers']; if (class_exists("PremiumManager") && PremiumManager::is_premium()) { $redirect_smartcards_readers = $default_settings['redirect_smartcards_readers']; } else { $redirect_smartcards_readers = 0; } $rdp_bpp = $default_settings['rdp_bpp']; $enhance_user_experience = $default_settings['enhance_user_experience']; $persistent = $default_settings['persistent']; $followme = $default_settings['followme']; $use_local_ime = $default_settings['use_local_ime']; $advanced_settings = array(); foreach ($default_settings['advanced_settings_startsession'] as $v) { $advanced_settings[] = $v; } $remote_desktop_settings = $user->getSessionSettings('remote_desktop_settings'); $remote_desktop_enabled = $remote_desktop_settings['enabled'] == 1 ? true : false;
public function initialize() { $c = new ConfigElement_select('system_in_maintenance', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general'); $c = new ConfigElement_select('admin_language', 'auto'); $c->setContentAvailable(array('auto', 'ar_AE', 'ca_ES', 'de_DE', 'en_GB', 'es_ES', 'fr_FR', 'hu_HU', 'it_IT', 'ja_JP', 'nl_NL', 'pt_BR', 'sk_SK', 'ro_RO', 'ru_RU', 'zh_CN')); $this->add($c, 'general'); $c = new ConfigElement_multiselect('log_flags', array('info', 'warning', 'error', 'critical')); $c->setContentAvailable(array('debug', 'info', 'warning', 'error', 'critical')); $this->add($c, 'general'); $c = new ConfigElement_select('cache_update_interval', 30); $c->setContentAvailable(array(30, 60, 300, 900, 1800, 3600, 7200)); $this->add($c, 'general'); $c = new ConfigElement_select('cache_expire_time', 86400 * 366); $c->setContentAvailable(array(86400, 86400 * 7, 86400 * 31, 86400 * 366)); $this->add($c, 'general'); // $c = new ConfigElement_input('start_app',''); // $this->add('general',$c); $c = new ConfigElement_text('user_default_group', ''); $this->add($c, 'general'); $c = new ConfigElement_select('domain_integration', 'internal'); $c->setContentAvailable(array('internal', 'microsoft', 'ldap', 'novell')); $this->add($c, 'general'); $c = new ConfigElement_input('max_items_per_page', 15); $this->add($c, 'general'); $c = new ConfigElement_inputlist('default_browser', array('linux' => NULL, 'windows' => NULL)); $this->add($c, 'general'); $c = new ConfigElement_dictionary('liaison', array()); $this->add($c, 'general'); $c = new ConfigElement_multiselect('default_policy', array()); $c->setContentAvailable(array('canUseAdminPanel', 'viewServers', 'manageServers', 'viewSharedFolders', 'manageSharedFolders', 'viewUsers', 'manageUsers', 'viewUsersGroups', 'manageUsersGroups', 'viewApplications', 'manageApplications', 'viewApplicationsGroups', 'manageApplicationsGroups', 'viewPublications', 'managePublications', 'viewConfiguration', 'manageConfiguration', 'viewStatus', 'manageSession', 'manageReporting', 'viewSummary', 'viewNews', 'manageNews', 'manageScripts', 'viewScripts', 'manageScriptsGroups', 'viewScriptsGroups')); $this->add($c, 'general', 'policy'); $c = new ConfigElement_select('type', 'mysql'); $c->setContentAvailable(array('mysql')); $this->add($c, 'general', 'sql'); $c = new ConfigElement_input('host', 'localhost'); $this->add($c, 'general', 'sql'); $c = new ConfigElement_input('user', ''); $this->add($c, 'general', 'sql'); $c = new ConfigElement_password('password', ''); $this->add($c, 'general', 'sql'); $c = new ConfigElement_input('database', 'ovd'); $this->add($c, 'general', 'sql'); $c = new ConfigElement_input('prefix', 'ulteo_'); $this->add($c, 'general', 'sql'); $c_mail_type = new ConfigElement_select('send_type', 'mail'); $c_mail_type->setContentAvailable(array('mail', 'smtp')); $this->add($c_mail_type, 'general', 'mails_settings'); $c = new ConfigElement_input('send_from', 'no-reply@' . @$_SERVER['SERVER_NAME']); $this->add($c, 'general', 'mails_settings'); // SMTP conf $c = new ConfigElement_input('send_host', ''); $this->add($c, 'general', 'mails_settings'); $c_mail_type->addReference('smtp', $c); $c = new ConfigElement_input('send_port', 25); $this->add($c, 'general', 'mails_settings'); $c_mail_type->addReference('smtp', $c); $c = new ConfigElement_select('send_ssl', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'mails_settings'); $c_mail_type->addReference('smtp', $c); $c = new ConfigElement_select('send_auth', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'mails_settings'); $c_mail_type->addReference('smtp', $c); $c = new ConfigElement_input('send_username', ''); $this->add($c, 'general', 'mails_settings'); $c_mail_type->addReference('smtp', $c); $c = new ConfigElement_password('send_password', ''); $this->add($c, 'general', 'mails_settings'); $c_mail_type->addReference('smtp', $c); $c = new ConfigElement_list('authorized_fqdn', array('*')); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('disable_fqdn_check', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('use_reverse_dns', true); $c->setContentAvailable(array(false, true)); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('action_when_as_not_ready', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('auto_recover', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('remove_orphan', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('auto_register_new_servers', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('auto_switch_new_servers_to_production', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'slave_server_settings'); $c = new ConfigElement_select('use_max_sessions_limit', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'slave_server_settings'); $roles = array(Server::SERVER_ROLE_APS, Server::SERVER_ROLE_FS); foreach ($roles as $role) { $decisionCriterion = get_classes_startwith('DecisionCriterion_'); $content_load_balancing = array(); foreach ($decisionCriterion as $criterion_class_name) { $c = new $criterion_class_name(NULL); // ugly if ($c->applyOnRole($role)) { $content_load_balancing[substr($criterion_class_name, strlen('DecisionCriterion_'))] = $c->default_value(); } } $c = new ConfigElement_sliders_loadbalancing('load_balancing_' . $role, $content_load_balancing); $this->add($c, 'general', 'slave_server_settings'); } $c_desktop_mode = new ConfigElement_select('enabled', 1); $c_desktop_mode->setContentAvailable(array(0, 1)); $this->add($c_desktop_mode, 'general', 'remote_desktop_settings'); $c = new ConfigElement_select('desktop_icons', 1); $c->setContentAvailable(array(0, 1)); $c_desktop_mode->addReference('1', $c); $this->add($c, 'general', 'remote_desktop_settings'); $c = new ConfigElement_select('allow_external_applications', 1); $c->setContentAvailable(array(0, 1)); $c_desktop_mode->addReference('1', $c); $this->add($c, 'general', 'remote_desktop_settings'); $c = new ConfigElement_select('desktop_type', 'any'); $c->setContentAvailable(array('any', 'linux', 'windows')); $c_desktop_mode->addReference('1', $c); $this->add($c, 'general', 'remote_desktop_settings'); $c = new ConfigElement_list('allowed_desktop_servers', array()); $c_desktop_mode->addReference('1', $c); $this->add($c, 'general', 'remote_desktop_settings'); $c = new ConfigElement_select('authorize_no_desktop', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'remote_desktop_settings'); $c = new ConfigElement_select('enabled', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'remote_applications_settings'); $c = new ConfigElement_select('session_mode', Session::MODE_APPLICATIONS); $c->setContentAvailable(array(Session::MODE_DESKTOP, Session::MODE_APPLICATIONS)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('language', 'en_GB'); $c->setContentAvailable(array('ar_AE', 'bg_BG', 'ca_ES', 'da-dk', 'de_DE', 'en_GB', 'el_GR', 'es_ES', 'eu_ES', 'fa_IR', 'fi_FI', 'fr_FR', 'he_IL', 'hu_HU', 'id_ID', 'is_IS', 'it_IT', 'ja_JP', 'nb_NO', 'nl_NL', 'pl_PL', 'pt_BR', 'ro_RO', 'ru_RU', 'sk_SK', 'sl', 'sv_SE', 'zh_CN')); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('timeout', -1); $c->setContentAvailable(array(60, 120, 300, 600, 900, 1800, 3600, 7200, 18000, 43200, 86400, 172800, 604800, 2764800, -1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_week_time_select('time_restriction', str_repeat("FF", 3 * 7)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_input('max_sessions_number', 0); $this->add($c, 'general'); $c = new ConfigElement_select('launch_without_apps', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('allow_shell', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('use_known_drives', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('bypass_servers_restrictions', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('multimedia', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('redirect_client_drives', 'full'); $c->setContentAvailable(array('no', 'partial', 'full')); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('redirect_client_printers', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); if (class_exists("PremiumManager") && PremiumManager::is_premium()) { $c = new ConfigElement_select('redirect_smartcards_readers', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); } $c = new ConfigElement_select('rdp_bpp', 16); $c->setContentAvailable(array(16, 24, 32)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('enhance_user_experience', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('use_local_ime', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('persistent', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('followme', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c_user_profile = new ConfigElement_select('enable_profiles', 1); $c_user_profile->setContentAvailable(array(0, 1)); $this->add($c_user_profile, 'general', 'session_settings_defaults'); $c = new ConfigElement_input('quota', 0); $c_user_profile->addReference('1', $c); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('profile_mode', 'advanced'); $c->setContentAvailable(array('standard', 'advanced')); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('auto_create_profile', 1); $c->setContentAvailable(array(0, 1)); $c_user_profile->addReference('1', $c); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('start_without_profile', 1); $c->setContentAvailable(array(0, 1)); $c_user_profile->addReference('1', $c); $this->add($c, 'general', 'session_settings_defaults'); $c_shared_folder = new ConfigElement_select('enable_sharedfolders', 1); $c_shared_folder->setContentAvailable(array(0, 1)); $this->add($c_shared_folder, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('start_without_all_sharedfolders', 1); $c->setContentAvailable(array(0, 1)); $c_shared_folder->addReference('1', $c); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('can_force_sharedfolders', 1); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_multiselect('advanced_settings_startsession', array('session_mode', 'language')); $c->setContentAvailable(array('session_mode', 'language', 'server', 'timeout', 'persistent')); $this->add($c, 'general', 'session_settings_defaults'); $c = new ConfigElement_select('show_list_users', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'web_interface_settings'); $c = new ConfigElement_select('public_webservices_access', 0); $c->setContentAvailable(array(0, 1)); $this->add($c, 'general', 'web_interface_settings'); $this->getPrefsModules(); $this->getPrefsEvents(); }
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ require_once dirname(__FILE__) . '/../includes/core-minimal.inc.php'; require_once dirname(__FILE__) . '/../includes/webservices.inc.php'; function parse_premium_sign_XML($xml_) { if (!$xml_ || strlen($xml_) == 0) { return false; } $dom = new DomDocument('1.0', 'utf-8'); $buf = @$dom->loadXML($xml_); if (!$buf) { return false; } if (!$dom->hasChildNodes()) { return false; } $node = $dom->getElementsByTagname('message')->item(0); if (is_null($node)) { return false; } return $node->textContent; } if (class_exists("PremiumManager")) { $message = parse_premium_sign_XML(@file_get_contents('php://input')); if (!$message) { Logger::error('main', '(webservices/premium/sign) Server does not send a valid XML (error_code: 1)'); webservices_return_error(1, 'Server does not send a valid XML'); } PremiumManager::sign($message); }
public function certificate_reset_named_users() { $this->check_authorized('manageConfiguration'); if (class_exists("PremiumManager")) { PremiumManager::certificate_reset_named_users(); $this->log_action('certificate_reset_named_users'); return true; } return false; }
/** * Copyright (C) 2013 Ulteo SAS * http://www.ulteo.com * Author David PHAM-VAN <*****@*****.**> 2013 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; version 2 * of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ require_once dirname(__FILE__) . '/../includes/core.inc.php'; if (class_exists("PremiumManager")) { if (!array_key_exists('message', $_REQUEST)) { Logger::error('main', '(client/sign) - no message given'); echo PremiumManager::return_error(1, 'No message given'); die; } PremiumManager::sign($_REQUEST['message']); } $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0'; header("{$protocol} 501 Not Implemented"); exit(0);