Skip to content

Commit 482b42c

Browse files
authored
Merge pull request #22891 from nextcloud/techdebt/18680/improve-ProvisioningApiMiddleware-service-logic
Improve registerService logic for ProvisioningApiMiddleware for static code analysis
2 parents 0f7fb7c + a65b431 commit 482b42c

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

apps/provisioning_api/lib/AppInfo/Application.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@
2929

3030
use OC\AppFramework\Utility\SimpleContainer;
3131
use OC\AppFramework\Utility\TimeFactory;
32+
use OC\Group\Manager as GroupManager;
3233
use OCA\Provisioning_API\Middleware\ProvisioningApiMiddleware;
3334
use OCA\Settings\Mailer\NewUserMailHelper;
3435
use OCP\AppFramework\App;
3536
use OCP\AppFramework\Utility\IControllerMethodReflector;
3637
use OCP\Defaults;
38+
use OCP\IGroupManager;
39+
use OCP\IUser;
3740
use OCP\Util;
3841

3942
class Application extends App {
@@ -58,8 +61,16 @@ public function __construct(array $urlParams = []) {
5861
});
5962
$container->registerService('ProvisioningApiMiddleware', function (SimpleContainer $c) use ($server) {
6063
$user = $server->getUserManager()->get($c['UserId']);
61-
$isAdmin = $user !== null ? $server->getGroupManager()->isAdmin($user->getUID()) : false;
62-
$isSubAdmin = $user !== null ? $server->getGroupManager()->getSubAdmin()->isSubAdmin($user) : false;
64+
$isAdmin = false;
65+
$isSubAdmin = false;
66+
67+
if ($user instanceof IUser) {
68+
$groupManager = $server->get(IGroupManager::class);
69+
assert($groupManager instanceof GroupManager);
70+
$isAdmin = $groupManager->isAdmin($user->getUID());
71+
$isSubAdmin = $groupManager->getSubAdmin()->isSubAdmin($user);
72+
}
73+
6374
return new ProvisioningApiMiddleware(
6475
$c->query(IControllerMethodReflector::class),
6576
$isAdmin,

build/psalm-baseline.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2115,11 +2115,6 @@
21152115
<file src="apps/oauth2/lib/Db/ClientMapper.php">
21162116
<InvalidCatch occurrences="2"/>
21172117
</file>
2118-
<file src="apps/provisioning_api/lib/AppInfo/Application.php">
2119-
<UndefinedInterfaceMethod occurrences="1">
2120-
<code>getSubAdmin</code>
2121-
</UndefinedInterfaceMethod>
2122-
</file>
21232118
<file src="apps/provisioning_api/lib/Controller/UsersController.php">
21242119
<InvalidScalarArgument occurrences="1">
21252120
<code>$quota</code>

0 commit comments

Comments
 (0)