/** * @inheritdoc */ public function exec(Server $server, ConnectionInterface $db, CacheInterface $cache) { $userFactory = new UserFactory($db, $cache); $user = $userFactory->load($_REQUEST['user']); $response = new OperationResponse(); if (!$user) { $response->setStatus(400); $response->setBody(array('error' => 'Argument "user" is referring to a user that does not exist')); } elseif ($this->user->isEqual($user)) { $response->setStatus(400); $response->setBody(array('error' => 'A user can not change admin privileges for its own user account')); } else { $userFactory->setAdminPrivileges($user, $_REQUEST['admin'] == '1'); $response->setStatus(204); } return $response; }
/** * @param \Rocker\Object\ObjectInterface $obj * @param \Rocker\Object\AbstractObjectFactory $factory * @param OperationResponse $response * @param ConnectionInterface $db * @param CacheInterface $cache * @param \Rocker\Server $server */ protected function updateObject($obj, $factory, $response, $db, $cache, $server) { if (isset($_REQUEST['name'])) { $obj->setName($_REQUEST['name']); } if (isset($_REQUEST['meta']) && is_array($_REQUEST['meta'])) { $result = $this->addMetaFromRequestToObject($obj); if ($result !== null) { // Something not okay with the meta values $response->setStatus($result[0]); $response->setBody($result[1]); return; } } try { $factory->update($obj); $response->setBody($this->objectToArray($obj, $server, $db, $cache)); } catch (DuplicationException $e) { $response->setStatus(409); $response->setBody(array('error' => $e->getMessage())); } }