From 46f04106e67f5356ad1acf84d8905796125a9eb7 Mon Sep 17 00:00:00 2001 From: Daniel Kesselberg Date: Wed, 8 Jul 2020 13:49:11 +0200 Subject: Improve registerService logic for ProvisioningApiMiddleware for static code analysis Signed-off-by: Daniel Kesselberg Signed-off-by: Morris Jobke --- apps/provisioning_api/lib/AppInfo/Application.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'apps/provisioning_api/lib') diff --git a/apps/provisioning_api/lib/AppInfo/Application.php b/apps/provisioning_api/lib/AppInfo/Application.php index 6d99c48be5d..c706cd38a10 100644 --- a/apps/provisioning_api/lib/AppInfo/Application.php +++ b/apps/provisioning_api/lib/AppInfo/Application.php @@ -29,11 +29,14 @@ namespace OCA\Provisioning_API\AppInfo; use OC\AppFramework\Utility\SimpleContainer; use OC\AppFramework\Utility\TimeFactory; +use OC\Group\Manager as GroupManager; use OCA\Provisioning_API\Middleware\ProvisioningApiMiddleware; use OCA\Settings\Mailer\NewUserMailHelper; use OCP\AppFramework\App; use OCP\AppFramework\Utility\IControllerMethodReflector; use OCP\Defaults; +use OCP\IGroupManager; +use OCP\IUser; use OCP\Util; class Application extends App { @@ -58,8 +61,16 @@ class Application extends App { }); $container->registerService('ProvisioningApiMiddleware', function (SimpleContainer $c) use ($server) { $user = $server->getUserManager()->get($c['UserId']); - $isAdmin = $user !== null ? $server->getGroupManager()->isAdmin($user->getUID()) : false; - $isSubAdmin = $user !== null ? $server->getGroupManager()->getSubAdmin()->isSubAdmin($user) : false; + $isAdmin = false; + $isSubAdmin = false; + + if ($user instanceof IUser) { + $groupManager = $server->get(IGroupManager::class); + assert($groupManager instanceof GroupManager); + $isAdmin = $groupManager->isAdmin($user->getUID()); + $isSubAdmin = $groupManager->getSubAdmin()->isSubAdmin($user); + } + return new ProvisioningApiMiddleware( $c->query(IControllerMethodReflector::class), $isAdmin, -- cgit v1.2.3