Esempio n. 1
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;
 }