f93a82b8b0
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>
53 lines
1.2 KiB
PHP
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;
|
|
}
|
|
}
|