Add check if the files_sharing app is enabled
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
105493f486
commit
8f87502e67
|
@ -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)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue