Browse Source

Merge pull request #22891 from nextcloud/techdebt/18680/improve-ProvisioningApiMiddleware-service-logic

Improve registerService logic for ProvisioningApiMiddleware for static code analysis
tags/v21.0.0beta1
Morris Jobke 3 years ago
parent
commit
482b42c4a7
No account linked to committer's email address
2 changed files with 13 additions and 7 deletions
  1. 13
    2
      apps/provisioning_api/lib/AppInfo/Application.php
  2. 0
    5
      build/psalm-baseline.xml

+ 13
- 2
apps/provisioning_api/lib/AppInfo/Application.php View File

@@ -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,

+ 0
- 5
build/psalm-baseline.xml View File

@@ -2115,11 +2115,6 @@
<file src="apps/oauth2/lib/Db/ClientMapper.php">
<InvalidCatch occurrences="2"/>
</file>
<file src="apps/provisioning_api/lib/AppInfo/Application.php">
<UndefinedInterfaceMethod occurrences="1">
<code>getSubAdmin</code>
</UndefinedInterfaceMethod>
</file>
<file src="apps/provisioning_api/lib/Controller/UsersController.php">
<InvalidScalarArgument occurrences="1">
<code>$quota</code>

Loading…
Cancel
Save