Skip to content

Commit

Permalink
DirectEditing: Set session user for DirectSession editing
Browse files Browse the repository at this point in the history
to have it available for the file put activities event

fixes nextcloud/android#10237
fixes #2821

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
  • Loading branch information
marcelklehr authored and max-nextcloud committed Nov 9, 2022
1 parent 048c96e commit 0ebec63
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lib/Controller/DirectSessionController.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
use OCP\Share\IManager as ShareManager;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share\IShare;

class DirectSessionController extends Controller {
Expand All @@ -74,6 +76,8 @@ public function __construct(string $appName, IRequest $request, ShareManager $sh
$this->shareManager = $shareManager;
$this->apiService = $apiService;
$this->directManager = $directManager;
$this->userSession = $userSession;
$this->userManager = $userManager;
}

/**
Expand Down Expand Up @@ -116,6 +120,7 @@ public function close(int $documentId, int $sessionId, string $sessionToken): Da
* @PublicPage
*/
public function push(int $documentId, int $sessionId, string $sessionToken, int $version, array $steps, string $token): DataResponse {
$this->loginTokenUser($token);
return $this->apiService->push($documentId, $sessionId, $sessionToken, $version, $steps, $token);
}

Expand All @@ -124,6 +129,7 @@ public function push(int $documentId, int $sessionId, string $sessionToken, int
* @PublicPage
*/
public function sync(string $token, int $documentId, int $sessionId, string $sessionToken, int $version = 0, string $autosaveContent = null, bool $force = false, bool $manualSave = false): DataResponse {
$this->loginTokenUser($token);
return $this->apiService->sync($documentId, $sessionId, $sessionToken, $version, $autosaveContent, $force, $manualSave, $token);
}

Expand All @@ -134,4 +140,12 @@ public function sync(string $token, int $documentId, int $sessionId, string $ses
public function updateSession(int $documentId, int $sessionId, string $sessionToken, string $guestName) {
return $this->apiService->updateSession($documentId, $sessionId, $sessionToken, $guestName);
}

private function loginTokenUser(string $token) {
$tokenObject = $this->directManager->getToken($token);
$user = $this->userManager->get($tokenObject->getUser());
if ($user !== null) {
$this->userSession->setUser($user);
}
}
}

0 comments on commit 0ebec63

Please sign in to comment.