From 044d5a8d01d7a393ebacf22c66bdd0cef67344eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= <danxuliu@gmail.com> Date: Tue, 13 Mar 2018 07:29:12 +0100 Subject: [PATCH] Inject public IGroupManager instead of private GroupManager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The public "IGroupManager" service returned by the dependency injection system is automatically initialized with an "OC\Group\Database" backend. However, no backend is automatically set in private "GroupManager" instances. Therefore, a private "GroupManager" instance does not work as expected when initialized through the dependency injection system. Due to that this commit reverts a previous change in which the public "IGroupManager" was replaced by a private "GroupManager" instance. That change was needed when strict types were set, as "getSubAdmin()" is not part of "IGroupManager" API, so the type had to be changed to "GroupManager". Until a better solution is found strict types are disabled again to be able to inject "IGroupManager" and also use "getSubAdmin()". Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com> --- settings/Controller/ChangePasswordController.php | 10 ++++++---- settings/Controller/UsersController.php | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/settings/Controller/ChangePasswordController.php b/settings/Controller/ChangePasswordController.php index 208178d567d..7dbdbac0239 100644 --- a/settings/Controller/ChangePasswordController.php +++ b/settings/Controller/ChangePasswordController.php @@ -1,5 +1,7 @@ <?php -declare(strict_types=1); +// FIXME: disabled for now to be able to inject IGroupManager and also use +// getSubAdmin() +//declare(strict_types=1); /** * * @@ -27,12 +29,12 @@ declare(strict_types=1); */ namespace OC\Settings\Controller; -use OC\Group\Manager as GroupManager; use OC\HintException; use OC\User\Session; use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\JSONResponse; +use OCP\IGroupManager; use OCP\IL10N; use OCP\IRequest; use OCP\IUser; @@ -50,7 +52,7 @@ class ChangePasswordController extends Controller { /** @var IL10N */ private $l; - /** @var GroupManager */ + /** @var IGroupManager */ private $groupManager; /** @var Session */ @@ -64,7 +66,7 @@ class ChangePasswordController extends Controller { string $userId, IUserManager $userManager, IUserSession $userSession, - GroupManager $groupManager, + IGroupManager $groupManager, IAppManager $appManager, IL10N $l) { parent::__construct($appName, $request); diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php index df89c2ec1a7..956403f143c 100644 --- a/settings/Controller/UsersController.php +++ b/settings/Controller/UsersController.php @@ -1,5 +1,7 @@ <?php -declare(strict_types=1); +// FIXME: disabled for now to be able to inject IGroupManager and also use +// getSubAdmin() +//declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -40,7 +42,6 @@ namespace OC\Settings\Controller; use OC\Accounts\AccountManager; use OC\AppFramework\Http; use OC\ForbiddenException; -use OC\Group\Manager as GroupManager; use OC\HintException; use OC\Settings\Mailer\NewUserMailHelper; use OC\Security\IdentityProof\Manager; @@ -52,6 +53,7 @@ use OCP\Files\Config\IUserMountCache; use OCP\Encryption\IEncryptionModule; use OCP\Encryption\IManager; use OCP\IConfig; +use OCP\IGroupManager; use OCP\IL10N; use OCP\ILogger; use OCP\IRequest; @@ -77,7 +79,7 @@ class UsersController extends Controller { private $isAdmin; /** @var IUserManager */ private $userManager; - /** @var GroupManager */ + /** @var IGroupManager */ private $groupManager; /** @var IConfig */ private $config; @@ -113,7 +115,7 @@ class UsersController extends Controller { public function __construct(string $appName, IRequest $request, IUserManager $userManager, - GroupManager $groupManager, + IGroupManager $groupManager, IUserSession $userSession, IConfig $config, bool $isAdmin, -- GitLab