} $formarray = formToArray($formdata); if (isset($formarray['general'][$container])) { $data = $formarray['general'][$container]; // TODO: to be better... $ret = null; $todel = Abstract_UserGroup_Preferences::loadByUserGroupId($group->getUniqueID(), 'general', $container); foreach ($todel as $key2 => $value2) { $ret = Abstract_UserGroup_Preferences::delete($group->getUniqueID(), 'general', $container, $value2->element_id); if ($ret !== true) { break; } } foreach ($data as $element_id => $value) { $ugp = new UserGroup_Preferences($group->getUniqueID(), 'general', $container, $element_id, $value); $ret = Abstract_UserGroup_Preferences::save($ugp); if ($ret !== true) { break; } } } } } } if ($ret === true) { popup_info(_('Usergroup successfully modified')); } else { if ($ret === false) { popup_error(_('Failed to modify usergroup')); } }
public function users_group_settings_set($group_id_, $container_, $setting_, $value_) { $this->check_authorized('manageUsersGroups'); $userGroupDB = UserGroupDB::getInstance(); $group = $userGroupDB->import($group_id_); if (!is_object($group)) { Logger::error('api', sprintf('Failed to import Usergroup "%s"', $id_)); return false; } $prefs = Preferences::getInstance(); $session_settings_defaults = $prefs->getElements('general', $container_); if (!array_key_exists($setting_, $session_settings_defaults)) { return false; } $config_element = clone $session_settings_defaults[$setting_]; $ugp = new UserGroup_Preferences($group->getUniqueID(), 'general', $container_, $setting_, $config_element->content); if (!is_null($value_)) { $ugp->value = $value_; } Abstract_UserGroup_Preferences::delete($group->getUniqueID(), 'general', $container_, $setting_); $ret = Abstract_UserGroup_Preferences::save($ugp); if (!$ret) { return false; } $this->log_action('users_group_settings_set', array('group' => $group->name, $container_ . '_' . $setting_ => array('old' => $session_settings_defaults[$setting_]->content, 'new' => $config_element->content))); return true; }