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(); }
} 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 getInitialConfiguration() { $c = array('version' => OVD_SM_VERSION, 'max_items_per_page' => $this->prefs->get('general', 'max_items_per_page'), 'admin_language' => $this->prefs->get('general', 'admin_language'), 'system_inited' => file_exists(SESSIONMANAGER_CONFFILE_SERIALIZED), 'system_in_maintenance' => $this->prefs->get('general', 'system_in_maintenance')); if (file_exists(SESSIONMANAGER_CONFFILE_SERIALIZED)) { $c['settings_last_backup'] = @filemtime(SESSIONMANAGER_CONFFILE_SERIALIZED); } if (Preferences::moduleIsEnabled('UserDB')) { $userDB = UserDB::getInstance(); $b = array('name' => $userDB->prettyName(), 'writable' => $userDB->isWriteable()); $c['UserDB'] = $b; } if (Preferences::moduleIsEnabled('UserGroupDB')) { $userGroupDB = UserGroupDB::getInstance(); $b = array('name' => $userGroupDB->prettyName(), 'writable' => $userGroupDB->isWriteable()); $c['UserGroupDB'] = $b; } if (Preferences::moduleIsEnabled('ApplicationDB')) { $applicationDB = ApplicationDB::getInstance(); $b = array('name' => $applicationDB->prettyName(), 'writable' => $applicationDB->isWriteable()); $c['ApplicationDB'] = $b; } if (Preferences::moduleIsEnabled('UserGroupDBDynamic')) { $c['UserGroupDBDynamic'] = true; } if (Preferences::moduleIsEnabled('UserGroupDBDynamicCached')) { $c['UserGroupDBDynamicCached'] = true; } if (Preferences::moduleIsEnabled('ProfileDB')) { $c['ProfileDB'] = true; } if (Preferences::moduleIsEnabled('SharedFolderDB')) { $c['SharedFolderDB'] = true; } $c['policy'] = $this->user_rights; if (class_exists("PremiumManager")) { $c["premium"] = PremiumManager::is_premium(); } else { $c["premium"] = False; } return $c; }