diff --git a/app/controllers/assets_controller.rb b/app/controllers/assets_controller.rb index 6a583d933..383964890 100644 --- a/app/controllers/assets_controller.rb +++ b/app/controllers/assets_controller.rb @@ -21,11 +21,13 @@ class AssetsController < ApplicationController before_action :check_manage_permission, only: %i(edit destroy duplicate rename toggle_view_mode) def file_preview + editable = can_manage_asset?(@asset) && (@asset.repository_asset_value.blank? || + !@asset.repository_cell.repository_row.repository.is_a?(SoftLockedRepository)) render json: { html: render_to_string( partial: 'shared/file_preview/content', locals: { asset: @asset, - can_edit: can_manage_asset?(@asset), + can_edit: editable, gallery: params[:gallery], preview: params[:preview] }, diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index f0057d77a..09dddfdf4 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -480,7 +480,7 @@ class RepositoriesController < ApplicationController end def set_inline_name_editing - return unless can_manage_repository?(@repository) + return unless can_manage_repository?(@repository) && !@repository.is_a?(SoftLockedRepository) @inline_editable_title_config = { name: 'title', diff --git a/app/services/toolbars/repositories_service.rb b/app/services/toolbars/repositories_service.rb index 80e6e8fa0..bdc0048e1 100644 --- a/app/services/toolbars/repositories_service.rb +++ b/app/services/toolbars/repositories_service.rb @@ -31,7 +31,7 @@ module Toolbars private def rename_action - return unless @single && can_manage_repository?(@repository) + return unless @single && can_manage_repository?(@repository) && !@repository.is_a?(SoftLockedRepository) { name: :update, @@ -67,7 +67,9 @@ module Toolbars end def archive_action - return unless @repositories.all? { |repository| can_archive_repository?(repository) } + return unless @repositories.all? do |repository| + can_archive_repository?(repository) && !@repository.is_a?(SoftLockedRepository) + end { name: :archive, @@ -90,7 +92,9 @@ module Toolbars end def restore_action - return unless @repositories.all? { |repository| can_archive_repository?(repository) } + return unless @repositories.all? do |repository| + can_archive_repository?(repository) && !repository.is_a?(SoftLockedRepository) + end { name: :restore, @@ -102,7 +106,7 @@ module Toolbars end def delete_action - return unless @single && can_delete_repository?(@repository) + return unless @single && can_delete_repository?(@repository) && !@repository.is_a?(SoftLockedRepository) { name: :delete, diff --git a/app/services/toolbars/repository_rows_service.rb b/app/services/toolbars/repository_rows_service.rb index 0ef1992d0..cfbbdf84e 100644 --- a/app/services/toolbars/repository_rows_service.rb +++ b/app/services/toolbars/repository_rows_service.rb @@ -166,7 +166,7 @@ module Toolbars end def delete_action - return unless can_delete_repository_rows?(@repository) + return unless can_delete_repository_rows?(@repository) && !@repository.is_a?(SoftLockedRepository) return unless @repository_rows.all?(&:archived?) diff --git a/app/views/repositories/_repository_table.html.erb b/app/views/repositories/_repository_table.html.erb index 59ec696d5..f60d324a4 100644 --- a/app/views/repositories/_repository_table.html.erb +++ b/app/views/repositories/_repository_table.html.erb @@ -52,7 +52,7 @@ data-type="<%= column.data_type %>" data-edit-column-url="<%= edit_repository_repository_column_path(repository, column) %>" data-destroy-column-url="<%= repository_columns_destroy_html_path(repository, column) %>" - data-editable-row="<%= can_manage_repository_column?(column) %>" + data-editable-row="<%= can_manage_repository_column?(column) && !repository.is_a?(SoftLockedRepository) %>" <% column.metadata.each do |k, v| %> <%= "data-metadata-#{k}=#{v}" %> <% end %>