示例#1
0
/**
 * 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;
}
示例#2
0
}
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;
示例#3
0
 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();
 }
示例#4
0
 * 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);
}
示例#5
0
 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;
 }
示例#6
0
/**
 * 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);