diff options
author | Lukas Reschke <lukas@owncloud.com> | 2016-04-05 16:23:01 +0200 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2016-04-05 16:47:38 +0200 |
commit | 433c0160b6e1fb558216447b49d09c8efeecd6ce (patch) | |
tree | 0c1d1671b6f8e37eea3977f897534e2fec521189 /settings/Application.php | |
parent | 90335ee2a1f214b32670ab2c65f8f87c95a71828 (diff) | |
download | nextcloud-server-433c0160b6e1fb558216447b49d09c8efeecd6ce.tar.gz nextcloud-server-433c0160b6e1fb558216447b49d09c8efeecd6ce.zip |
Move OC\Core and OC\Settings to composer autoloader
Diffstat (limited to 'settings/Application.php')
-rw-r--r-- | settings/Application.php | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/settings/Application.php b/settings/Application.php new file mode 100644 index 00000000000..5b84d028abf --- /dev/null +++ b/settings/Application.php @@ -0,0 +1,258 @@ +<?php +/** + * @author Björn Schießle <schiessle@owncloud.com> + * @author Georg Ehrke <georg@owncloud.com> + * @author Joas Schilling <nickvergessen@owncloud.com> + * @author Lukas Reschke <lukas@owncloud.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <icewind@owncloud.com> + * @author Roeland Jago Douma <rullzer@owncloud.com> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @copyright Copyright (c) 2016, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Settings; + +use OC\Files\View; +use OC\Settings\Controller\AppSettingsController; +use OC\Settings\Controller\CertificateController; +use OC\Settings\Controller\CheckSetupController; +use OC\Settings\Controller\EncryptionController; +use OC\Settings\Controller\GroupsController; +use OC\Settings\Controller\LogSettingsController; +use OC\Settings\Controller\MailSettingsController; +use OC\Settings\Controller\SecuritySettingsController; +use OC\Settings\Controller\UsersController; +use OC\Settings\Middleware\SubadminMiddleware; +use \OCP\AppFramework\App; +use OCP\IContainer; +use \OCP\Util; +use OC\Server; + +/** + * @package OC\Settings + */ +class Application extends App { + + + /** + * @param array $urlParams + */ + public function __construct(array $urlParams=[]){ + parent::__construct('settings', $urlParams); + + $container = $this->getContainer(); + + /** + * Controllers + */ + $container->registerService('MailSettingsController', function(IContainer $c) { + return new MailSettingsController( + $c->query('AppName'), + $c->query('Request'), + $c->query('L10N'), + $c->query('Config'), + $c->query('UserSession'), + $c->query('Defaults'), + $c->query('Mailer'), + $c->query('DefaultMailAddress') + ); + }); + $container->registerService('EncryptionController', function(IContainer $c) { + return new EncryptionController( + $c->query('AppName'), + $c->query('Request'), + $c->query('L10N'), + $c->query('Config'), + $c->query('DatabaseConnection'), + $c->query('UserManager'), + new View(), + $c->query('Logger') + ); + }); + $container->registerService('AppSettingsController', function(IContainer $c) { + return new AppSettingsController( + $c->query('AppName'), + $c->query('Request'), + $c->query('L10N'), + $c->query('Config'), + $c->query('ICacheFactory'), + $c->query('INavigationManager'), + $c->query('IAppManager'), + $c->query('OcsClient') + ); + }); + $container->registerService('SecuritySettingsController', function(IContainer $c) { + return new SecuritySettingsController( + $c->query('AppName'), + $c->query('Request'), + $c->query('Config') + ); + }); + $container->registerService('CertificateController', function(IContainer $c) { + return new CertificateController( + $c->query('AppName'), + $c->query('Request'), + $c->query('CertificateManager'), + $c->query('SystemCertificateManager'), + $c->query('L10N'), + $c->query('IAppManager') + ); + }); + $container->registerService('GroupsController', function(IContainer $c) { + return new GroupsController( + $c->query('AppName'), + $c->query('Request'), + $c->query('GroupManager'), + $c->query('UserSession'), + $c->query('IsAdmin'), + $c->query('L10N') + ); + }); + $container->registerService('UsersController', function(IContainer $c) { + return new UsersController( + $c->query('AppName'), + $c->query('Request'), + $c->query('UserManager'), + $c->query('GroupManager'), + $c->query('UserSession'), + $c->query('Config'), + $c->query('IsAdmin'), + $c->query('L10N'), + $c->query('Logger'), + $c->query('Defaults'), + $c->query('Mailer'), + $c->query('DefaultMailAddress'), + $c->query('URLGenerator'), + $c->query('OCP\\App\\IAppManager'), + $c->query('OCP\\IAvatarManager') + ); + }); + $container->registerService('LogSettingsController', function(IContainer $c) { + return new LogSettingsController( + $c->query('AppName'), + $c->query('Request'), + $c->query('Config'), + $c->query('L10N') + ); + }); + $container->registerService('CheckSetupController', function(IContainer $c) { + return new CheckSetupController( + $c->query('AppName'), + $c->query('Request'), + $c->query('Config'), + $c->query('ClientService'), + $c->query('URLGenerator'), + $c->query('Util'), + $c->query('L10N'), + $c->query('Checker') + ); + }); + + /** + * Middleware + */ + $container->registerService('SubadminMiddleware', function(IContainer $c){ + return new SubadminMiddleware( + $c->query('ControllerMethodReflector'), + $c->query('IsSubAdmin') + ); + }); + // Execute middlewares + $container->registerMiddleware('SubadminMiddleware'); + + /** + * Core class wrappers + */ + $container->registerService('Config', function(IContainer $c) { + return $c->query('ServerContainer')->getConfig(); + }); + $container->registerService('ICacheFactory', function(IContainer $c) { + return $c->query('ServerContainer')->getMemCacheFactory(); + }); + $container->registerService('L10N', function(IContainer $c) { + return $c->query('ServerContainer')->getL10N('settings'); + }); + $container->registerService('GroupManager', function(IContainer $c) { + return $c->query('ServerContainer')->getGroupManager(); + }); + $container->registerService('UserManager', function(IContainer $c) { + return $c->query('ServerContainer')->getUserManager(); + }); + $container->registerService('UserSession', function(IContainer $c) { + return $c->query('ServerContainer')->getUserSession(); + }); + /** FIXME: Remove once OC_User is non-static and mockable */ + $container->registerService('IsAdmin', function(IContainer $c) { + return \OC_User::isAdminUser(\OC_User::getUser()); + }); + /** FIXME: Remove once OC_SubAdmin is non-static and mockable */ + $container->registerService('IsSubAdmin', function(IContainer $c) { + $userObject = \OC::$server->getUserSession()->getUser(); + $isSubAdmin = false; + if($userObject !== null) { + $isSubAdmin = \OC::$server->getGroupManager()->getSubAdmin()->isSubAdmin($userObject); + } + return $isSubAdmin; + }); + $container->registerService('Mailer', function(IContainer $c) { + return $c->query('ServerContainer')->getMailer(); + }); + $container->registerService('Defaults', function(IContainer $c) { + return new \OC_Defaults; + }); + $container->registerService('DefaultMailAddress', function(IContainer $c) { + return Util::getDefaultEmailAddress('no-reply'); + }); + $container->registerService('Logger', function(IContainer $c) { + return $c->query('ServerContainer')->getLogger(); + }); + $container->registerService('URLGenerator', function(IContainer $c) { + return $c->query('ServerContainer')->getURLGenerator(); + }); + $container->registerService('ClientService', function(IContainer $c) { + return $c->query('ServerContainer')->getHTTPClientService(); + }); + $container->registerService('INavigationManager', function(IContainer $c) { + return $c->query('ServerContainer')->getNavigationManager(); + }); + $container->registerService('IAppManager', function(IContainer $c) { + return $c->query('ServerContainer')->getAppManager(); + }); + $container->registerService('OcsClient', function(IContainer $c) { + return $c->query('ServerContainer')->getOcsClient(); + }); + $container->registerService('Util', function(IContainer $c) { + return new \OC_Util(); + }); + $container->registerService('DatabaseConnection', function(IContainer $c) { + return $c->query('ServerContainer')->getDatabaseConnection(); + }); + $container->registerService('CertificateManager', function(IContainer $c){ + return $c->query('ServerContainer')->getCertificateManager(); + }); + $container->registerService('SystemCertificateManager', function (IContainer $c) { + return $c->query('ServerContainer')->getCertificateManager(null); + }); + $container->registerService('Checker', function(IContainer $c) { + /** @var Server $server */ + $server = $c->query('ServerContainer'); + return $server->getIntegrityCodeChecker(); + }); + } +} |