Skip to content

Commit 59cd28d

Browse files
committed
fix: check if we have a user session before setting-up restrictions
Signed-off-by: skjnldsv <[email protected]>
1 parent e6eaf49 commit 59cd28d

File tree

1 file changed

+21
-47
lines changed

1 file changed

+21
-47
lines changed

lib/RestrictionManager.php

Lines changed: 21 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -23,61 +23,35 @@
2323
use Psr\Log\LoggerInterface;
2424

2525
class RestrictionManager {
26-
/** @var AppWhitelist */
27-
private $whitelist;
28-
29-
/** @var IRequest */
30-
private $request;
31-
32-
/** @var IUserSession */
33-
private $userSession;
34-
35-
/** @var IServerContainer */
36-
private $server;
37-
38-
/** @var Hooks */
39-
private $hooks;
40-
41-
/** @var GuestManager */
42-
private $guestManager;
43-
44-
/** @var IMountProviderCollection */
45-
private $mountProviderCollection;
46-
47-
/** @var Config */
48-
private $config;
49-
50-
/** @var UserBackend */
51-
private $userBackend;
5226

5327
public function __construct(
54-
AppWhitelist $whitelist,
55-
IRequest $request,
56-
IUserSession $userSession,
57-
IServerContainer $server,
58-
Hooks $hooks,
59-
GuestManager $guestManager,
60-
IMountProviderCollection $mountProviderCollection,
61-
Config $config,
62-
UserBackend $userBackend,
28+
private AppWhitelist $whitelist,
29+
private IRequest $request,
30+
private IUserSession $userSession,
31+
private IServerContainer $server,
32+
private Hooks $hooks,
33+
private GuestManager $guestManager,
34+
private IMountProviderCollection $mountProviderCollection,
35+
private Config $config,
36+
private UserBackend $userBackend,
37+
private LoggerInterface $logger,
6338
) {
64-
$this->whitelist = $whitelist;
65-
$this->request = $request;
66-
$this->userSession = $userSession;
67-
$this->server = $server;
68-
$this->hooks = $hooks;
69-
$this->guestManager = $guestManager;
70-
$this->mountProviderCollection = $mountProviderCollection;
71-
$this->config = $config;
72-
$this->userBackend = $userBackend;
7339
}
7440

7541
public function verifyAccess(): void {
7642
$this->whitelist->verifyAccess($this->userSession->getUser(), $this->request);
7743
}
7844

7945
public function setupRestrictions(): void {
80-
if ($this->guestManager->isGuest($this->userSession->getUser())) {
46+
$user = $this->userSession->getUser();
47+
48+
if ($user === null) {
49+
// No user logged in, no restrictions needed
50+
$this->logger->warning('No user session found, skipping guest restrictions setup.');
51+
return;
52+
}
53+
54+
if ($this->guestManager->isGuest($user)) {
8155
\OCP\Util::connectHook('OC_Filesystem', 'preSetup', $this->hooks, 'setupReadonlyFilesystem');
8256
if (!$this->config->allowExternalStorage()) {
8357
$this->mountProviderCollection->registerMountFilter(function (IMountPoint $mountPoint, IUser $user) {
@@ -88,8 +62,8 @@ public function setupRestrictions(): void {
8862
/** @var NavigationManager $navManager */
8963
$navManager = \OCP\Server::get(INavigationManager::class);
9064

91-
$this->server->registerService(INavigationManager::class, function () use ($navManager) {
92-
return new FilteredNavigationManager($this->userSession->getUser(), $navManager, $this->whitelist);
65+
$this->server->registerService(INavigationManager::class, function () use ($navManager, $user) {
66+
return new FilteredNavigationManager($user, $navManager, $this->whitelist);
9367
});
9468

9569
$settingsManager = $this->server->get(IManager::class);

0 commit comments

Comments
 (0)