/**
  * @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()));
     }
 }