Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
fix(reset): Reset all document sessions on upgrades from 4.0.0 or below
Fixes: #5420

Fixes: nextcloud/collectives#1270

Signed-off-by: Jonas <[email protected]>

[skip ci]
  • Loading branch information
mejo- authored and backportbot[bot] committed Jun 12, 2024
commit a74ae06ca99d27981c13084b31354073089c738c
27 changes: 12 additions & 15 deletions lib/Migration/ResetSessionsBeforeYjs.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace OCA\Text\Migration;

use OCA\Text\Db\SessionMapper;
use OCA\Text\Db\Document;
use OCA\Text\Service\DocumentService;
use OCP\IConfig;
use OCP\Migration\IOutput;
Expand All @@ -25,31 +25,28 @@ public function __construct(IConfig $config,
* @return string
*/
public function getName(): string {
return 'Force-reset all Text sessions before Yjs migration';
return 'Force-reset all Text document sessions';
}

/**
* @param IOutput $output
*
* @return void
*/
public function run(IOutput $output): void {
$appVersion = $this->config->getAppValue('text', 'installed_version');

if (!$appVersion || version_compare($appVersion, '3.7.2') !== -1) {
if (!$appVersion || version_compare($appVersion, '4.0.1') !== -1) {
return;
}

$sessions = $this->sessionMapper->findAllDocuments();
if (!$sessions) {
$fileIds = array_map(static function (Document $document) {
return $document->getId();
}, $this->documentService->getAll());

if (!$fileIds) {
return;
}

$output->startProgress(count($sessions));
foreach ($sessions as $session) {
$documentId = $session->getDocumentId();
$this->documentService->unlock($documentId);
$this->documentService->resetDocument($documentId, true);
$output->startProgress(count($fileIds));
foreach ($fileIds as $fileId) {
$this->documentService->unlock($fileId);
$this->documentService->resetDocument($fileId, true);
$output->advance();
}
$output->finishProgress();
Expand Down