390 lines
9.5 KiB
PHP
390 lines
9.5 KiB
PHP
<?php
|
|
/**
|
|
* Nextcloud - Gallery
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later. See the COPYING file.
|
|
*
|
|
* @author Olivier Paroz <galleryapps@oparoz.com>
|
|
*
|
|
* @copyright Olivier Paroz 2017
|
|
*/
|
|
|
|
namespace OCA\Gallery\AppInfo;
|
|
|
|
ini_set("gd.jpeg_ignore_warning", true);
|
|
|
|
require_once __DIR__ . '/../../vendor/autoload.php';
|
|
|
|
// A production environment will not have xdebug enabled and
|
|
// a development environment should have the dev packages installed
|
|
$c3 = __DIR__ . '/../../c3.php';
|
|
if (extension_loaded('xdebug') && file_exists($c3)) {
|
|
include_once $c3;
|
|
}
|
|
|
|
use OCP\IContainer;
|
|
|
|
use OCP\AppFramework\App;
|
|
use OCP\AppFramework\IAppContainer;
|
|
|
|
use OCA\Gallery\Config\ConfigParser;
|
|
use OCA\Gallery\Controller\PageController;
|
|
use OCA\Gallery\Controller\ConfigController;
|
|
use OCA\Gallery\Controller\ConfigPublicController;
|
|
use OCA\Gallery\Controller\ConfigApiController;
|
|
use OCA\Gallery\Controller\FilesController;
|
|
use OCA\Gallery\Controller\FilesPublicController;
|
|
use OCA\Gallery\Controller\FilesApiController;
|
|
use OCA\Gallery\Controller\PreviewController;
|
|
use OCA\Gallery\Controller\PreviewPublicController;
|
|
use OCA\Gallery\Controller\PreviewApiController;
|
|
use OCA\Gallery\Environment\Environment;
|
|
use OCA\Gallery\Service\SearchFolderService;
|
|
use OCA\Gallery\Service\ConfigService;
|
|
use OCA\Gallery\Service\SearchMediaService;
|
|
use OCA\Gallery\Service\ThumbnailService;
|
|
use OCA\Gallery\Service\PreviewService;
|
|
use OCA\Gallery\Service\DownloadService;
|
|
use OCA\Gallery\Middleware\SharingCheckMiddleware;
|
|
use OCA\Gallery\Middleware\EnvCheckMiddleware;
|
|
use OCA\Gallery\Utility\EventSource;
|
|
|
|
use OCA\OcUtility\AppInfo\Application as OcUtility;
|
|
|
|
/**
|
|
* Class Application
|
|
*
|
|
* @package OCA\Gallery\AppInfo
|
|
*/
|
|
class Application extends App {
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @param array $urlParams
|
|
*/
|
|
public function __construct(array $urlParams = []) {
|
|
parent::__construct('gallery', $urlParams);
|
|
|
|
$container = $this->getContainer();
|
|
|
|
/**
|
|
* Controllers
|
|
*/
|
|
$container->registerService(
|
|
'PageController', function (IContainer $c) {
|
|
return new PageController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('Environment'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('OCP\IConfig'),
|
|
$c->query('Session')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'ConfigController', function (IContainer $c) {
|
|
return new ConfigController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('ConfigService'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'ConfigPublicController', function (IContainer $c) {
|
|
return new ConfigPublicController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('ConfigService'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'ConfigApiController', function (IContainer $c) {
|
|
return new ConfigApiController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('ConfigService'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'FilesController', function (IContainer $c) {
|
|
return new FilesController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('SearchFolderService'),
|
|
$c->query('ConfigService'),
|
|
$c->query('SearchMediaService'),
|
|
$c->query('DownloadService'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'FilesPublicController', function (IContainer $c) {
|
|
return new FilesPublicController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('SearchFolderService'),
|
|
$c->query('ConfigService'),
|
|
$c->query('SearchMediaService'),
|
|
$c->query('DownloadService'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'FilesApiController', function (IContainer $c) {
|
|
return new FilesApiController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('SearchFolderService'),
|
|
$c->query('ConfigService'),
|
|
$c->query('SearchMediaService'),
|
|
$c->query('DownloadService'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'PreviewController', function (IContainer $c) {
|
|
return new PreviewController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('ConfigService'),
|
|
$c->query('ThumbnailService'),
|
|
$c->query('PreviewService'),
|
|
$c->query('DownloadService'),
|
|
$c->query('EventSource'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'PreviewPublicController', function (IContainer $c) {
|
|
return new PreviewPublicController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('ConfigService'),
|
|
$c->query('ThumbnailService'),
|
|
$c->query('PreviewService'),
|
|
$c->query('DownloadService'),
|
|
$c->query('EventSource'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'PreviewApiController', function (IContainer $c) {
|
|
return new PreviewApiController(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('ConfigService'),
|
|
$c->query('ThumbnailService'),
|
|
$c->query('PreviewService'),
|
|
$c->query('DownloadService'),
|
|
$c->query('EventSource'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
|
|
/**
|
|
* Core
|
|
*/
|
|
$container->registerService(
|
|
'EventSource', function (IAppContainer $c) {
|
|
return new EventSource();
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'Token', function (IContainer $c) {
|
|
return $c->query('Request')
|
|
->getParam('token');
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'Session', function (IAppContainer $c) {
|
|
return $c->getServer()
|
|
->getSession();
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'L10N', function (IAppContainer $c) {
|
|
return $c->getServer()
|
|
->getL10N('gallery'); // Keep the same translations
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'UserFolder', function (IAppContainer $c) {
|
|
return $c->getServer()
|
|
->getUserFolder($c->query('UserId'));
|
|
}
|
|
);
|
|
|
|
/**
|
|
* OCA
|
|
*/
|
|
$container->registerService(
|
|
'ConfigParser', function () {
|
|
return new ConfigParser();
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'Environment', function (IContainer $c) {
|
|
return new Environment(
|
|
$c->query('AppName'),
|
|
$c->query('UserId'),
|
|
$c->query('UserFolder'),
|
|
$c->query('OCP\IUserManager'),
|
|
$c->query('OCP\Files\IRootFolder'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
/*// The same thing as above, but in OC9, hopefully. See https://github.com/owncloud/core/issues/12676
|
|
$container->registerService(
|
|
'Environment', function (IAppContainer $c) {
|
|
$token = $c->query('Token');
|
|
|
|
return $c
|
|
->getServer()
|
|
->getEnvironment($token);
|
|
}
|
|
);*/
|
|
/**
|
|
* OCA External
|
|
*/
|
|
if (\OCP\App::isEnabled('ocutility')) {
|
|
// @codeCoverageIgnoreStart
|
|
$container->registerService(
|
|
'UtilityContainer', function () {
|
|
$app = new OcUtility();
|
|
|
|
return $app->getContainer();
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'Helper', function (IContainer $c) {
|
|
return $c->query('UtilityContainer')
|
|
->query('OCA\OcUtility\Service\Helper');
|
|
}
|
|
);
|
|
} else {
|
|
// @codeCoverageIgnoreEnd
|
|
$container->registerService(
|
|
'Logger', function (IContainer $c) {
|
|
return $c->query('OCP\ILogger');
|
|
}
|
|
);
|
|
}
|
|
/**
|
|
* Services
|
|
*/
|
|
$container->registerService(
|
|
'SearchFolderService', function (IContainer $c) {
|
|
return new SearchFolderService(
|
|
$c->query('AppName'),
|
|
$c->query('Environment'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'ConfigService', function (IContainer $c) {
|
|
return new ConfigService(
|
|
$c->query('AppName'),
|
|
$c->query('Environment'),
|
|
$c->query('ConfigParser'),
|
|
$c->query('OCP\IPreview'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'SearchMediaService', function (IContainer $c) {
|
|
return new SearchMediaService(
|
|
$c->query('AppName'),
|
|
$c->query('Environment'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'ThumbnailService', function () {
|
|
return new ThumbnailService();
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'PreviewService', function (IContainer $c) {
|
|
return new PreviewService(
|
|
$c->query('AppName'),
|
|
$c->query('Environment'),
|
|
$c->query('OCP\IPreview'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'DownloadService', function (IContainer $c) {
|
|
return new DownloadService(
|
|
$c->query('AppName'),
|
|
$c->query('Environment'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
|
|
/**
|
|
* Middleware
|
|
*/
|
|
$container->registerService(
|
|
'SharingCheckMiddleware',
|
|
function (IAppContainer $c) {
|
|
return new SharingCheckMiddleware(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\IConfig'),
|
|
$c->query('OCP\AppFramework\Utility\IControllerMethodReflector'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
$container->registerService(
|
|
'EnvCheckMiddleware',
|
|
function (IContainer $c) {
|
|
return new EnvCheckMiddleware(
|
|
$c->query('AppName'),
|
|
$c->query('Request'),
|
|
$c->query('OCP\Security\IHasher'),
|
|
$c->query('Session'),
|
|
$c->query('Environment'),
|
|
$c->query('OCP\AppFramework\Utility\IControllerMethodReflector'),
|
|
$c->query('OCP\IURLGenerator'),
|
|
$c->query('OCP\Share\IManager'),
|
|
$c->query('Logger')
|
|
);
|
|
}
|
|
);
|
|
|
|
// Executed in the order that it is registered
|
|
$container->registerMiddleware('SharingCheckMiddleware');
|
|
$container->registerMiddleware('EnvCheckMiddleware');
|
|
}
|
|
|
|
}
|