Example #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;
}
Example #2
0
 public function serverGroups()
 {
     Logger::debug('main', 'USERSGROUP::serversGroups (for id=' . $this->getUniqueID() . ')');
     $ApplicationsGroupDB = ApplicationsGroupDB::getInstance();
     $groups = Abstract_Liaison::load('UsersGroupServersGroup', $this->getUniqueID(), NULL);
     if (!is_array($groups)) {
         Logger::error('main', 'USERSGROUP::serversGroups (for id=' . $this->getUniqueID() . ') result query is false');
         return NULL;
     }
     $result = array();
     foreach ($groups as $UGAG_liaison) {
         $g = Abstract_ServersGroup::load($UGAG_liaison->group);
         if (is_object($g)) {
             $result[$UGAG_liaison->group] = $g;
         }
     }
     return $result;
 }
Example #3
0
 public function users_group_info($id_)
 {
     $this->check_authorized('viewUsersGroups');
     $userGroupDB = UserGroupDB::getInstance();
     $group = $userGroupDB->import($id_);
     if (!$group) {
         return null;
     }
     $g = self::generate_usersgroup_array($group);
     $search_limit = $this->prefs->get('general', 'max_items_per_page');
     $userDB = UserDB::getInstance();
     list($users, $sizelimit_exceeded) = $userDB->getUsersContains('', array(), $search_limit, $group);
     $g['users_partial_list'] = $sizelimit_exceeded;
     if (count($users) > 0) {
         $s['users'] = array();
         foreach ($users as $user) {
             $g['users'][$user->getAttribute('login')] = $user->getAttribute('displayname');
         }
     }
     $ags = $group->appsGroups();
     if (count($ags) > 0) {
         $g['applicationsgroups'] = array();
         foreach ($ags as $ag) {
             $g['applicationsgroups'][$ag->id] = $ag->name;
         }
     }
     $servers_groups = Abstract_ServersGroup::getList(true);
     $liaisons = Abstract_Liaison::load('UsersGroupServersGroup', $id_, NULL);
     $g['serversgroups'] = array();
     foreach ($liaisons as $group_s) {
         if (!array_key_exists($group_s->group, $servers_groups)) {
             continue;
         }
         $group_s = $servers_groups[$group_s->group];
         $g['serversgroups'][$group_s->id] = $group_s->name;
     }
     if (Preferences::moduleIsEnabled('SharedFolderDB')) {
         $sharedfolderdb = SharedFolderDB::getInstance();
         $sharedfolders = $sharedfolderdb->importFromUsergroup($group->getUniqueID());
         if (count($sharedfolders) > 0) {
             $g['shared_folders'] = array();
             foreach ($sharedfolders as $mode => $sharedfolders2) {
                 $g['shared_folders'][$mode] = array();
                 foreach ($sharedfolders2 as $sharedfolder) {
                     $g['shared_folders'][$mode][$sharedfolder->id] = $sharedfolder->name;
                 }
             }
         }
     }
     // Policy
     $policy = $group->getPolicy();
     $prefs_policy = $this->prefs->get('general', 'policy');
     $default_policy = $prefs_policy['default_policy'];
     $g['policy'] = $policy;
     $g['default_policy'] = array();
     foreach ($policy as $key => $value) {
         $g['default_policy'][$key] = in_array($key, $default_policy);
     }
     // Settings
     $g['settings'] = array();
     $g['settings_default'] = array();
     $session_prefs_categs = array('session_settings_defaults', 'remote_desktop_settings', 'remote_applications_settings');
     foreach ($session_prefs_categs as $session_prefs_categ) {
         $session_prefs = $this->prefs->getElements('general', $session_prefs_categ);
         foreach ($session_prefs as $session_pref) {
             $e = self::pref_element2dict($session_pref);
             $g['settings_default'][$session_prefs_categ][$e['id']] = $e;
         }
         $group_prefs = Abstract_UserGroup_Preferences::loadByUserGroupId($group->getUniqueID(), 'general', $session_prefs_categ);
         foreach ($group_prefs as $group_pref) {
             $g['settings'][$session_prefs_categ][$group_pref->element_id] = $group_pref->value;
         }
     }
     return $g;
 }