Improve registerService logic for ProvisioningApiMiddleware for static code analysis

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
Daniel Kesselberg 2020-07-08 13:49:11 +02:00 committed by Morris Jobke
parent a72edb0d0e
commit 46f04106e6
No known key found for this signature in database
GPG Key ID: FE03C3A163FEDE68
1 changed files with 13 additions and 2 deletions

View File

@ -29,11 +29,14 @@ namespace OCA\Provisioning_API\AppInfo;
use OC\AppFramework\Utility\SimpleContainer; use OC\AppFramework\Utility\SimpleContainer;
use OC\AppFramework\Utility\TimeFactory; use OC\AppFramework\Utility\TimeFactory;
use OC\Group\Manager as GroupManager;
use OCA\Provisioning_API\Middleware\ProvisioningApiMiddleware; use OCA\Provisioning_API\Middleware\ProvisioningApiMiddleware;
use OCA\Settings\Mailer\NewUserMailHelper; use OCA\Settings\Mailer\NewUserMailHelper;
use OCP\AppFramework\App; use OCP\AppFramework\App;
use OCP\AppFramework\Utility\IControllerMethodReflector; use OCP\AppFramework\Utility\IControllerMethodReflector;
use OCP\Defaults; use OCP\Defaults;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\Util; use OCP\Util;
class Application extends App { class Application extends App {
@ -58,8 +61,16 @@ class Application extends App {
}); });
$container->registerService('ProvisioningApiMiddleware', function (SimpleContainer $c) use ($server) { $container->registerService('ProvisioningApiMiddleware', function (SimpleContainer $c) use ($server) {
$user = $server->getUserManager()->get($c['UserId']); $user = $server->getUserManager()->get($c['UserId']);
$isAdmin = $user !== null ? $server->getGroupManager()->isAdmin($user->getUID()) : false; $isAdmin = false;
$isSubAdmin = $user !== null ? $server->getGroupManager()->getSubAdmin()->isSubAdmin($user) : 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( return new ProvisioningApiMiddleware(
$c->query(IControllerMethodReflector::class), $c->query(IControllerMethodReflector::class),
$isAdmin, $isAdmin,