Add check if the files_sharing app is enabled

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2018-03-01 15:24:36 +01:00
parent 105493f486
commit 8f87502e67
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
3 changed files with 31 additions and 6 deletions

View File

@ -23,6 +23,7 @@ if (extension_loaded('xdebug') && file_exists($c3)) {
include_once $c3;
}
use OCP\App\IAppManager;
use OCP\IContainer;
use OCP\AppFramework\App;
@ -361,7 +362,8 @@ class Application extends App {
$c->query('OCP\IConfig'),
$c->query('OCP\AppFramework\Utility\IControllerMethodReflector'),
$c->query('OCP\IURLGenerator'),
$c->query('Logger')
$c->query('Logger'),
$c->query(IAppManager::class)
);
}
);

View File

@ -14,6 +14,7 @@
namespace OCA\Gallery\Middleware;
use OCP\App\IAppManager;
use OCP\IConfig;
use OCP\IRequest;
use OCP\ILogger;
@ -33,6 +34,8 @@ class SharingCheckMiddleware extends CheckMiddleware {
private $config;
/** @var IControllerMethodReflector */
protected $reflector;
/** @var IAppManager */
protected $appManager;
/***
* Constructor
@ -43,6 +46,7 @@ class SharingCheckMiddleware extends CheckMiddleware {
* @param IControllerMethodReflector $reflector
* @param IURLGenerator $urlGenerator
* @param ILogger $logger
* @param IAppManager $appManager
*/
public function __construct(
$appName,
@ -50,7 +54,8 @@ class SharingCheckMiddleware extends CheckMiddleware {
IConfig $appConfig,
IControllerMethodReflector $reflector,
IURLGenerator $urlGenerator,
ILogger $logger
ILogger $logger,
IAppManager $appManager
) {
parent::__construct(
$appName,
@ -61,6 +66,7 @@ class SharingCheckMiddleware extends CheckMiddleware {
$this->config = $appConfig;
$this->reflector = $reflector;
$this->appManager = $appManager;
}
/**
@ -94,11 +100,11 @@ class SharingCheckMiddleware extends CheckMiddleware {
private function isSharingEnabled() {
$shareApiAllowLinks = $this->config->getAppValue('core', 'shareapi_allow_links', 'yes');
if ($shareApiAllowLinks !== 'yes') {
return false;
if ($shareApiAllowLinks === 'yes' && $this->appManager->isEnabledForUser('files_sharing')) {
return true;
}
return true;
return false;
}
}

View File

@ -18,6 +18,7 @@ namespace OCA\Gallery\Tests\Middleware;
use OC\AppFramework\Utility\ControllerMethodReflector;
use OCP\App\IAppManager;
use OCP\IConfig;
use OCP\IRequest;
use OCP\ILogger;
@ -52,6 +53,8 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
private $urlGenerator;
/** @var ILogger */
protected $logger;
/** @var IAppManager */
protected $appManager;
/** @var Controller */
private $controller;
/** @var SharingCheckMiddleware */
@ -77,6 +80,9 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->logger = $this->getMockBuilder('\OCP\ILogger')
->disableOriginalConstructor()
->getMock();
$this->appManager = $this->getMockBuilder(IAppManager::class)
->disableOriginalConstructor()
->getMock();
$this->controller = $this->getMockBuilder('OCP\AppFramework\Controller')
->disableOriginalConstructor()
->getMock();
@ -87,7 +93,8 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->config,
$this->reflector,
$this->urlGenerator,
$this->logger
$this->logger,
$this->appManager
);
}
@ -103,6 +110,16 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
$this->assertFalse(self::invokePrivate($this->middleware, 'isSharingEnabled'));
}
public function testIsSharingEnabledWithSharingAppDisabled() {
$this->appManager->expects($this->once())
->method('isEnabledForUser')
->with(['files_sharing'])
->willReturn(false);
$this->mockSharingConfigTo('yes');
$this->assertFalse(self::invokePrivate($this->middleware, 'isSharingEnabled'));
}
/**
* @Guest
* @PublicPage