server/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php
Lukas Reschke f93a82b8b0
Remove explicit type hints for Controller
This is public API and breaks the middlewares of existing apps. Since this also requires maintaining two different code paths for 12 and 13 I'm at the moment voting for reverting this change.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-08-01 17:32:03 +02:00

53 lines
1.2 KiB
PHP

<?php
namespace OCA\Files_Sharing\Middleware;
use OCA\Files_Sharing\Controller\ShareAPIController;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Middleware;
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\IL10N;
use OCP\Share\IManager;
class OCSShareAPIMiddleware extends Middleware {
/** @var IManager */
private $shareManager;
/** @var IL10N */
private $l;
public function __construct(IManager $shareManager,
IL10N $l) {
$this->shareManager = $shareManager;
$this->l = $l;
}
/**
* @param Controller $controller
* @param string $methodName
*
* @throws OCSNotFoundException
*/
public function beforeController($controller, $methodName) {
if ($controller instanceof ShareAPIController) {
if (!$this->shareManager->shareApiEnabled()) {
throw new OCSNotFoundException($this->l->t('Share API is disabled'));
}
}
}
/**
* @param Controller $controller
* @param string $methodName
* @param Response $response
* @return Response
*/
public function afterController($controller, $methodName, Response $response) {
if ($controller instanceof ShareAPIController) {
/** @var ShareAPIController $controller */
$controller->cleanup();
}
return $response;
}
}