From c9d2e31d527190660c51a75741747178f029091c Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Tue, 25 Jul 2017 22:25:23 +0200 Subject: Remove old code + add Middleware * Add proper middleware for shareinfo * Remove old shareinfo routes Signed-off-by: Roeland Jago Douma --- .../lib/Middleware/ShareInfoMiddleware.php | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php (limited to 'apps/files_sharing/lib/Middleware') diff --git a/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php new file mode 100644 index 00000000000..a069ecacc2a --- /dev/null +++ b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php @@ -0,0 +1,84 @@ +shareManager = $shareManager; + } + + /** + * @param Controller $controller + * @param string $methodName + * @throws S2SException + */ + public function beforeController(Controller $controller, $methodName) { + if (!($controller instanceof ShareInfoController)) { + return; + } + + if (!$this->shareManager->outgoingServer2ServerSharesAllowed()) { + throw new S2SException(); + } + } + + /** + * @param Controller $controller + * @param string $methodName + * @param \Exception $exception + * @throws \Exception + * @return Response + */ + public function afterException(Controller $controller, $methodName, \Exception $exception) { + if (!($controller instanceof ShareInfoController)) { + throw $exception; + } + + if ($exception instanceof S2SException) { + return new JSONResponse([], Http::STATUS_NOT_FOUND); + } + } + + /** + * @param Controller $controller + * @param string $methodName + * @param Response $response + * @return Response + */ + public function afterController(Controller $controller, $methodName, Response $response) { + if (!($controller instanceof ShareInfoController)) { + return $response; + } + + if (!($response instanceof JSONResponse)) { + return $response; + } + + $data = $response->getData(); + $status = 'error'; + + if ($response->getStatus() === Http::STATUS_OK) { + $status = 'success'; + } + + $response->setData([ + 'data' => $data, + 'status' => $status, + ]); + + return $response; + } +} -- cgit v1.2.3