/** * Ajax request to save new configuration settings. */ public function save_settings() { AccessControl::check_permission(AccessControl::PERM_CHANGE_NOTIFICATION_SETTINGS); $params = new ParamStruct(); $params->add_required_param('settings', PDT_ARR); $params->fill(); if (!$params->is_valid()) { AjaxModul::return_code(AjaxModul::ERROR_INVALID_PARAMETER); } db::getInstance()->begin(); foreach ($params->settings as $key => $val) { $this->config->set_value($key, $val, 'notify'); } db::getInstance()->commit(); AjaxModul::return_code(AjaxModul::SUCCESS); }
/** * Add/Change a group. */ public function group_add() { AccessControl::check_permission(AccessControl::PERM_MANAGE_USERS); $params = new ParamStruct(); $params->add_param('old_name', PDT_STRING, ''); $params->add_required_param('name', PDT_STRING); $params->add_param('permissions', PDT_ARR, array()); $params->fill(); if (!$params->is_valid()) { AjaxModul::return_code(AjaxModul::ERROR_INVALID_PARAMETER); } $old = $params->old_name; if ($params->name !== $old && AccessControl::getInstance()->get_config()->group_exists($params->name)) { AjaxModul::return_code(AjaxModul::ERROR_INVALID_PARAMETER, null, true, 'This group already exists.'); } if (empty($old)) { $result = $this->access_control->get_config()->group_add($params->name); } else { $this->access_control->get_config()->group_revoke_all_permission($old); $result = $this->access_control->get_config()->group_change($old, $params->name); } foreach ($params->permissions as $permission) { $this->access_control->get_config()->group_grant_permission($params->name, $permission); } if ($result) { AjaxModul::return_code(AjaxModul::SUCCESS); } AjaxModul::return_code(AjaxModul::ERROR_DEFAULT, null, true, 'Could not add or update the user'); }