permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ); $session = $this->sessionService->initSession($boardId); return new DataResponse([ 'token' => $session->getToken(), ]); } #[NoAdminRequired] public function sync(int $boardId, string $token): DataResponse { $this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ); try { $this->sessionService->syncSession($boardId, $token); return new DataResponse([]); } catch (DoesNotExistException $e) { return new DataResponse([], 404); } } #[NoAdminRequired] #[NoCSRFRequired] public function close(int $boardId, ?string $token = null): DataResponse { if ($token === null) { return new DataResponse(); } $this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ); $this->sessionService->closeSession($boardId, $token); return new DataResponse(); } }