\\\\_\ · · \\) \____) · · · · · · · · Qvitter is free software: you can redistribute it and / or modify it · · under the terms of the GNU Affero General Public License as published by · · the Free Software Foundation, either version three of the License or (at · · your option) any later version. · · · · Qvitter is distributed in hope that it will be useful but WITHOUT ANY · · WARRANTY; without even the implied warranty of MERCHANTABILTY or FITNESS · · FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for · · more details. · · · · You should have received a copy of the GNU Affero General Public License · · along with Qvitter. If not, see . · · · · Contact h@nnesmannerhe.im if you have any questions. · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */ if (!defined('GNUSOCIAL')) { exit(1); } class ApiQvitterSandboxCreateAction extends ApiAuthAction { protected $needPost = true; /** * Take arguments for running * * @param array $args $_REQUEST args * * @return boolean success flag */ protected function prepare(array $args=array()) { parent::prepare($args); $this->format = 'json'; $this->other = $this->getTargetProfile($this->arg('id')); return true; } /** * Handle the request * * @param array $args $_REQUEST data (unused) * * @return void */ protected function handle() { parent::handle(); if (!$this->other instanceof Profile) { $this->clientError(_('No such user.'), 404); } if ($this->scoped->id == $this->other->id) { $this->clientError(_("You cannot sandbox yourself!"), 403); } if (!$this->scoped->hasRight(Right::SANDBOXUSER)) { $this->clientError(_('You cannot sandbox users on this site.'), 403); } // Only administrators can sandbox other privileged users (such as others who have the right to sandbox). if ($this->scoped->isPrivileged() && !$this->scoped->hasRole(Profile_role::ADMINISTRATOR)) { $this->clientError(_('You cannot sandbox other privileged users.'), 403); } // only sandbox of the user isn't sandboxed if (!$this->other->isSandboxed()) { try { $this->other->sandbox(); } catch (Exception $e) { $this->clientError($e->getMessage(), $e->getCode()); } } $this->initDocument('json'); $this->showJsonObjects($this->twitterUserArray($this->other)); $this->endDocument('json'); } }