Skip to content

Commit 11bc8c3

Browse files
authored
Merge b9df729 into bb360c3
2 parents bb360c3 + b9df729 commit 11bc8c3

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

lib/Controller/SessionController.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,23 @@
3232
use OCP\AppFramework\Http\DataResponse;
3333
use OCP\AppFramework\Http\Response;
3434
use OCP\IRequest;
35+
use OCP\IUserManager;
36+
use OCP\IUserSession;
3537

3638
class SessionController extends Controller {
3739
private ApiService $apiService;
3840
private SessionService $sessionService;
3941
private NotificationService $notificationService;
42+
private IUserManager $userManager;
43+
private IUserSession $userSession;
4044

41-
public function __construct(string $appName, IRequest $request, ApiService $apiService, SessionService $sessionService, NotificationService $notificationService) {
45+
public function __construct(string $appName, IRequest $request, ApiService $apiService, SessionService $sessionService, NotificationService $notificationService, IUserManager $userManager, IUserSession $userSession) {
4246
parent::__construct($appName, $request);
4347
$this->apiService = $apiService;
4448
$this->sessionService = $sessionService;
4549
$this->notificationService = $notificationService;
50+
$this->userManager = $userManager;
51+
$this->userSession = $userSession;
4652
}
4753

4854
/**
@@ -73,6 +79,7 @@ public function close(int $documentId, int $sessionId, string $sessionToken): Da
7379
* @PublicPage
7480
*/
7581
public function push(int $documentId, int $sessionId, string $sessionToken, int $version, array $steps): DataResponse {
82+
$this->loginSessionUser($documentId, $sessionId, $sessionToken);
7683
return $this->apiService->push($documentId, $sessionId, $sessionToken, $version, $steps);
7784
}
7885

@@ -81,6 +88,7 @@ public function push(int $documentId, int $sessionId, string $sessionToken, int
8188
* @PublicPage
8289
*/
8390
public function sync(int $documentId, int $sessionId, string $sessionToken, int $version = 0, string $autosaveContent = null, bool $force = false, bool $manualSave = false): DataResponse {
91+
$this->loginSessionUser($documentId, $sessionId, $sessionToken);
8492
return $this->apiService->sync($documentId, $sessionId, $sessionToken, $version, $autosaveContent, $force, $manualSave);
8593
}
8694

@@ -102,4 +110,12 @@ public function mention(int $documentId, int $sessionId, string $sessionToken, s
102110

103111
return new DataResponse($this->notificationService->mention($documentId, $mention));
104112
}
113+
114+
private function loginSessionUser(int $documentId, int $sessionId, string $sessionToken) {
115+
$currentSession = $this->sessionService->getSession($documentId, $sessionId, $sessionToken);
116+
$user = $this->userManager->get($currentSession->getUserId());
117+
if ($user !== null) {
118+
$this->userSession->setUser($user);
119+
}
120+
}
105121
}

0 commit comments

Comments
 (0)