Ejemplo n.º 1
0
 public function getSessionSettings($container_)
 {
     $prefs = Preferences::getInstance();
     $overriden = array();
     $default_settings = $prefs->get('general', $container_);
     // load rules (overriden settings)
     $user_groups_preferences = Abstract_UserGroup_Preferences::load_all('general', $container_);
     $users_group_id = array();
     foreach ($user_groups_preferences as $key => $pref) {
         if (in_array($pref->usergroup_id, $users_group_id)) {
             continue;
         }
         array_push($users_group_id, $pref->usergroup_id);
     }
     // from this group, which are these I am into
     $users_groups_mine_ids = $this->get_my_usersgroups_from_list($users_group_id);
     // Finnaly, overwrite default settings with users groups settings
     foreach ($user_groups_preferences as $pref) {
         $key = $pref->element_id;
         if (!in_array($pref->usergroup_id, $users_groups_mine_ids)) {
             continue;
         }
         $element = $pref->toConfigElement();
         if (isset($overriden[$key]) && $overriden[$key] == true && $element->content != $default_settings[$key]) {
             ErrorManager::report('User "' . $this->getAttribute('login') . '" has at least two groups with the same overriden rule but with different values, the result will be unpredictable.');
         }
         $default_settings[$key] = $element->content;
         $overriden[$key] = true;
     }
     $prefs_of_a_user_unsort = Abstract_User_Preferences::loadByUserLogin($this->getAttribute('login'), 'general', $container_);
     foreach ($prefs_of_a_user_unsort as $key => $pref) {
         $element = $pref->toConfigElement();
         if (isset($overriden[$key]) && $overriden[$key] == true && $element->content != $default_settings[$key]) {
             Logger::debug("User '" . $this->getAttribute('login') . "' has at least overriden preferences but with different values, the result will be unpredictable.");
         }
         $default_settings[$key] = $element->content;
         $overriden[$key] = true;
     }
     return $default_settings;
 }