Merge pull request #8281 from scinote-eln/revert-8063-ma_SCI_11279

Revert "Prevent creation of blank WOPI file versions [SCI-11279]"
This commit is contained in:
Martin Artnik 2025-02-28 14:14:26 +01:00 committed by GitHub
commit ddea1262a1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 5 additions and 17 deletions

View file

@ -33,7 +33,7 @@ class AssetSyncController < ApplicationController
ActiveRecord::Base.transaction do
@asset.update(last_modified_by: current_user)
if wopi_file?(@asset)
@asset.wopi_update_contents(request.body)
@asset.update_contents(request.body)
else
@asset.attach_file_version(io: request.body, filename: @asset.file.filename)
@asset.touch

View file

@ -201,7 +201,7 @@ class WopiController < ActionController::Base
logger.warn 'WOPI: replacing file'
@asset.last_modified_by = @user
@asset.wopi_update_contents(request.body)
@asset.update_contents(request.body)
@asset.save
@team.take_space(@asset.estimated_size)
@ -219,7 +219,7 @@ class WopiController < ActionController::Base
elsif !@asset.file_size.nil? && @asset.file_size.zero?
logger.warn 'WOPI: initializing empty file'
@asset.wopi_update_contents(request.body)
@asset.update_contents(request.body)
@asset.last_modified_by = @user
@asset.save
@team.save

View file

@ -359,20 +359,8 @@ class Asset < ApplicationRecord
end
end
def wopi_update_contents(new_file)
# Only start attaching new versions after an actual first version is created.
# This avoids empty file versions when using WOPI.
# The first actual version is version 3:
# Version 1: Empty 0KB placeholder file.
# Version 2: Empty document file, created when first opening the document in Office Online.
# Version 3: First actual save of file contents.
if version.to_i > 2
attach_file_version(io: new_file, filename: file_name)
else
file.attach(io: new_file, filename: file_name)
end
def update_contents(new_file)
attach_file_version(io: new_file, filename: file_name)
self.version = version.nil? ? 1 : version + 1
save
end