/** * 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; }
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; }
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; }