0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-01-30 22:37:01 +00:00
nextcloud_server/apps/files_external/lib/Config/UserContext.php
provokateurin e8426996f5
fix(psalm): Fix some newly detected issues
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-21 12:37:59 +02:00

60 lines
1.3 KiB
PHP

<?php
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_External\Config;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager as ShareManager;
class UserContext {
/** @var string */
private $userId;
public function __construct(
private IUserSession $session,
private ShareManager $shareManager,
private IRequest $request,
private IUserManager $userManager,
) {
}
public function getSession(): IUserSession {
return $this->session;
}
public function setUserId(string $userId): void {
$this->userId = $userId;
}
protected function getUserId(): ?string {
if ($this->userId !== null) {
return $this->userId;
}
if ($this->session->getUser() !== null) {
return $this->session->getUser()->getUID();
}
try {
$shareToken = $this->request->getParam('token');
$share = $this->shareManager->getShareByToken($shareToken);
return $share->getShareOwner();
} catch (ShareNotFound $e) {
}
return null;
}
protected function getUser(): ?IUser {
$userId = $this->getUserId();
if ($userId !== null) {
return $this->userManager->get($userId);
}
return null;
}
}