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