|
|
|
|
@ -104,6 +104,7 @@ abstract class AUserData extends OCSController { |
|
|
|
|
*/ |
|
|
|
|
protected function getUserData(string $userId, bool $includeScopes = false): array { |
|
|
|
|
$currentLoggedInUser = $this->userSession->getUser(); |
|
|
|
|
assert($currentLoggedInUser !== null, 'No user logged in'); |
|
|
|
|
|
|
|
|
|
$data = []; |
|
|
|
|
|
|
|
|
|
@ -113,8 +114,8 @@ abstract class AUserData extends OCSController { |
|
|
|
|
throw new OCSNotFoundException('User does not exist'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Should be at least Admin Or SubAdmin! |
|
|
|
|
if ($this->groupManager->isAdmin($currentLoggedInUser->getUID()) |
|
|
|
|
$isAdmin = $this->groupManager->isAdmin($currentLoggedInUser->getUID()); |
|
|
|
|
if ($isAdmin |
|
|
|
|
|| $this->groupManager->getSubAdmin()->isUserAccessible($currentLoggedInUser, $targetUserObject)) { |
|
|
|
|
$data['enabled'] = $this->config->getUserValue($targetUserObject->getUID(), 'core', 'enabled', 'true') === 'true'; |
|
|
|
|
} else { |
|
|
|
|
@ -132,13 +133,15 @@ abstract class AUserData extends OCSController { |
|
|
|
|
$gids[] = $group->getGID(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
# might be thrown by LDAP due to handling of users disappears |
|
|
|
|
# from the external source (reasons unknown to us) |
|
|
|
|
# cf. https://github.com/nextcloud/server/issues/12991 |
|
|
|
|
$data['storageLocation'] = $targetUserObject->getHome(); |
|
|
|
|
} catch (NoUserException $e) { |
|
|
|
|
throw new OCSNotFoundException($e->getMessage(), $e); |
|
|
|
|
if ($isAdmin) { |
|
|
|
|
try { |
|
|
|
|
# might be thrown by LDAP due to handling of users disappears |
|
|
|
|
# from the external source (reasons unknown to us) |
|
|
|
|
# cf. https://github.com/nextcloud/server/issues/12991 |
|
|
|
|
$data['storageLocation'] = $targetUserObject->getHome(); |
|
|
|
|
} catch (NoUserException $e) { |
|
|
|
|
throw new OCSNotFoundException($e->getMessage(), $e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Find the data |
|
|
|
|
|