You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

application.php 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. /**
  3. * @author Lukas Reschke
  4. * @copyright 2014 Lukas Reschke lukas@owncloud.com
  5. *
  6. * This file is licensed under the Affero General Public License version 3 or
  7. * later.
  8. * See the COPYING-README file.
  9. */
  10. namespace OC\Settings;
  11. use OC\Settings\Controller\AppSettingsController;
  12. use OC\Settings\Controller\GroupsController;
  13. use OC\Settings\Controller\MailSettingsController;
  14. use OC\Settings\Controller\SecuritySettingsController;
  15. use OC\Settings\Controller\UsersController;
  16. use OC\Settings\Middleware\SubadminMiddleware;
  17. use \OCP\AppFramework\App;
  18. use OCP\IContainer;
  19. use \OCP\Util;
  20. /**
  21. * @package OC\Settings
  22. */
  23. class Application extends App {
  24. /**
  25. * @param array $urlParams
  26. */
  27. public function __construct(array $urlParams=array()){
  28. parent::__construct('settings', $urlParams);
  29. $container = $this->getContainer();
  30. /**
  31. * Controllers
  32. */
  33. $container->registerService('MailSettingsController', function(IContainer $c) {
  34. return new MailSettingsController(
  35. $c->query('AppName'),
  36. $c->query('Request'),
  37. $c->query('L10N'),
  38. $c->query('Config'),
  39. $c->query('UserSession'),
  40. $c->query('Defaults'),
  41. $c->query('Mail'),
  42. $c->query('DefaultMailAddress')
  43. );
  44. });
  45. $container->registerService('AppSettingsController', function(IContainer $c) {
  46. return new AppSettingsController(
  47. $c->query('AppName'),
  48. $c->query('Request'),
  49. $c->query('L10N'),
  50. $c->query('Config')
  51. );
  52. });
  53. $container->registerService('SecuritySettingsController', function(IContainer $c) {
  54. return new SecuritySettingsController(
  55. $c->query('AppName'),
  56. $c->query('Request'),
  57. $c->query('Config')
  58. );
  59. });
  60. $container->registerService('GroupsController', function(IContainer $c) {
  61. return new GroupsController(
  62. $c->query('AppName'),
  63. $c->query('Request'),
  64. $c->query('GroupManager'),
  65. $c->query('UserSession'),
  66. $c->query('IsAdmin'),
  67. $c->query('L10N')
  68. );
  69. });
  70. $container->registerService('UsersController', function(IContainer $c) {
  71. return new UsersController(
  72. $c->query('AppName'),
  73. $c->query('Request'),
  74. $c->query('UserManager'),
  75. $c->query('GroupManager'),
  76. $c->query('UserSession'),
  77. $c->query('Config'),
  78. $c->query('IsAdmin'),
  79. $c->query('L10N')
  80. );
  81. });
  82. /**
  83. * Middleware
  84. */
  85. $container->registerService('SubadminMiddleware', function(IContainer $c){
  86. return new SubadminMiddleware(
  87. $c->query('ControllerMethodReflector'),
  88. $c->query('IsSubAdmin')
  89. );
  90. });
  91. // Execute middlewares
  92. $container->registerMiddleware('SubadminMiddleware');
  93. /**
  94. * Core class wrappers
  95. */
  96. $container->registerService('Config', function(IContainer $c) {
  97. return $c->query('ServerContainer')->getConfig();
  98. });
  99. $container->registerService('L10N', function(IContainer $c) {
  100. return $c->query('ServerContainer')->getL10N('settings');
  101. });
  102. $container->registerService('GroupManager', function(IContainer $c) {
  103. return $c->query('ServerContainer')->getGroupManager();
  104. });
  105. $container->registerService('UserManager', function(IContainer $c) {
  106. return $c->query('ServerContainer')->getUserManager();
  107. });
  108. $container->registerService('UserSession', function(IContainer $c) {
  109. return $c->query('ServerContainer')->getUserSession();
  110. });
  111. /** FIXME: Remove once OC_User is non-static and mockable */
  112. $container->registerService('IsAdmin', function(IContainer $c) {
  113. return \OC_User::isAdminUser(\OC_User::getUser());
  114. });
  115. /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
  116. $container->registerService('IsSubAdmin', function(IContainer $c) {
  117. return \OC_Subadmin::isSubAdmin(\OC_User::getUser());
  118. });
  119. $container->registerService('Mail', function(IContainer $c) {
  120. return new \OC_Mail;
  121. });
  122. $container->registerService('Defaults', function(IContainer $c) {
  123. return new \OC_Defaults;
  124. });
  125. $container->registerService('DefaultMailAddress', function(IContainer $c) {
  126. return Util::getDefaultEmailAddress('no-reply');
  127. });
  128. }
  129. }