Skip to content

Commit b1a686b

Browse files
authored
Merge pull request #3405 from nextcloud/backport/3398/stable23
2 parents 4f125ae + 643c8d7 commit b1a686b

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

lib/Controller/SessionController.php

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@
2626
namespace OCA\Text\Controller;
2727

2828
use OCA\Text\Service\ApiService;
29+
use OCA\Text\Service\SessionService;
2930
use OCP\AppFramework\Controller;
3031
use OCP\AppFramework\Http\DataResponse;
3132
use OCP\AppFramework\Http\Response;
3233
use OCP\IRequest;
34+
use OCP\IUserManager;
35+
use OCP\IUserSession;
3336

3437
class SessionController extends Controller {
3538

@@ -38,9 +41,28 @@ class SessionController extends Controller {
3841
*/
3942
private $apiService;
4043

41-
public function __construct(string $appName, IRequest $request, ApiService $apiService) {
44+
/**
45+
* @var SessionService
46+
*/
47+
private $sessionService;
48+
49+
/**
50+
* @var IUserManager
51+
*/
52+
private $userManager;
53+
54+
/**
55+
* @var IUserSession
56+
*/
57+
private $userSession;
58+
59+
60+
public function __construct(string $appName, IRequest $request, ApiService $apiService, SessionService $sessionService, IUserManager $userManager, IUserSession $userSession) {
4261
parent::__construct($appName, $request);
4362
$this->apiService = $apiService;
63+
$this->sessionService = $sessionService;
64+
$this->userManager = $userManager;
65+
$this->userSession = $userSession;
4466
}
4567

4668
/**
@@ -71,6 +93,7 @@ public function close(int $documentId, int $sessionId, string $sessionToken): Da
7193
* @PublicPage
7294
*/
7395
public function push(int $documentId, int $sessionId, string $sessionToken, int $version, array $steps): DataResponse {
96+
$this->loginSessionUser($documentId, $sessionId, $sessionToken);
7497
return $this->apiService->push($documentId, $sessionId, $sessionToken, $version, $steps);
7598
}
7699

@@ -79,6 +102,15 @@ public function push(int $documentId, int $sessionId, string $sessionToken, int
79102
* @PublicPage
80103
*/
81104
public function sync(int $documentId, int $sessionId, string $sessionToken, int $version = 0, string $autosaveContent = null, bool $force = false, bool $manualSave = false): DataResponse {
105+
$this->loginSessionUser($documentId, $sessionId, $sessionToken);
82106
return $this->apiService->sync($documentId, $sessionId, $sessionToken, $version, $autosaveContent, $force, $manualSave);
83107
}
108+
109+
private function loginSessionUser(int $documentId, int $sessionId, string $sessionToken) {
110+
$currentSession = $this->sessionService->getSession($documentId, $sessionId, $sessionToken);
111+
$user = $this->userManager->get($currentSession->getUserId());
112+
if ($user !== null) {
113+
$this->userSession->setUser($user);
114+
}
115+
}
84116
}

0 commit comments

Comments
 (0)