9 * @author Christian Weiske <cweiske@cweiske.de>
10 * @copyright 2014 Christian Weiske
11 * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3
12 * @link http://cweiske.de/grauphel.htm
14 namespace OCA\Grauphel\Controller;
16 use \OCP\AppFramework\Controller;
17 use \OCA\Grauphel\Lib\Dependencies;
18 use \OCA\Grauphel\Lib\OAuthException;
19 use \OCA\Grauphel\Lib\Response\ErrorResponse;
20 use \OCA\Grauphel\Lib\TokenStorage;
23 * OAuth token management
27 * @author Christian Weiske <cweiske@cweiske.de>
28 * @copyright 2014 Christian Weiske
29 * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3
30 * @version Release: @package_version@
31 * @link http://cweiske.de/grauphel.htm
33 class TokenController extends Controller
36 * constructor of the controller
38 * @param string $appName Name of the app
39 * @param IRequest $request Instance of the request
41 public function __construct($appName, \OCP\IRequest $request, $user)
43 parent::__construct($appName, $request);
46 //default http header: we assume something is broken
47 header('HTTP/1.0 500 Internal Server Error');
52 * Delete access tokens
53 * DELETE /tokens/$username/$tokenKey
58 public function delete($username, $tokenKey)
60 if (false && ($this->user === null || $this->user->getUid() != $username)) {
61 $res = new ErrorResponse('You may only delete your own tokens.');
62 $res->setStatus(\OCP\AppFramework\Http::STATUS_FORBIDDEN);
66 $deps = Dependencies::get();
68 $token = $deps->tokens->load('access', $tokenKey);
69 } catch (OAuthException $e) {
70 $res = new ErrorResponse('Token not found.');
71 $res->setStatus(\OCP\AppFramework\Http::STATUS_NOT_FOUND);
75 if ($username != $token->user) {
76 $res = new ErrorResponse('You may only delete your own tokens.');
77 $res->setStatus(\OCP\AppFramework\Http::STATUS_FORBIDDEN);
81 $deps->tokens->delete('access', $tokenKey);
83 $res = new \OCP\AppFramework\Http\Response();
84 $res->setStatus(\OCP\AppFramework\Http::STATUS_NO_CONTENT);