public function add_group() { $params = new ParamStruct(); $params->add_required_param('group', PDT_STRING); $params->add_param('strategy', PDT_INT, 0); $params->add_param('rotate_period', PDT_INT, 0); $params->add_param('miner', PDT_STRING, ''); $params->add_validator('group', new FunctionValidator('This group already exists.', function ($value) { $pool_config = new PoolConfig(); return !$pool_config->group_exists($value); })); $params->fill(); if (!$this->access_control->has_permission(AccessControl::PERM_CHANGE_POOL_GROUP)) { AjaxModul::return_code(AjaxModul::ERROR_NO_RIGHTS); } if (!$params->is_valid(true)) { AjaxModul::return_code(AjaxModul::ERROR_MISSING_PARAMETER, null, true, implode("\n", $params->get_errors())); } if ($params->group === 'donate') { AjaxModul::return_code(AjaxModul::ERROR_DEFAULT, null, true, 'donate group is a special one, you can not add it.'); } $this->load_pool_config(); $result = $this->pool_config->add_group($params->group, $params->strategy, $params->rotate_period, $params->miner); if ($result !== true) { AjaxModul::return_code(AjaxModul::ERROR_INVALID_PARAMETER, null, true, $result); } AjaxModul::return_code(AjaxModul::SUCCESS); }