Merge pull request #3104 from urbanrotnik/ur-sci-5429-result-deletion

Fix result deletion [SCI-5429]
This commit is contained in:
Urban Rotnik 2021-01-20 15:59:28 +01:00 committed by GitHub
commit ac26a40574
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 3 deletions

View file

@ -34,6 +34,6 @@ class ResultsController < ApplicationController
end
def check_destroy_permissions
render_403 unless can_manage_result?(@result)
render_403 unless can_delete_result?(@result)
end
end

View file

@ -8,4 +8,8 @@ Canaid::Permissions.register_for(Result) do
can :manage_result do |user, result|
can_manage_module?(user, result.my_module) && result.active? && result.unlocked?(result)
end
can :delete_result do |user, result|
can_manage_module?(user, result.my_module) && result.archived? && result.unlocked?(result)
end
end

View file

@ -18,7 +18,7 @@
<%= link_to option_text, result_table_download_path(result.result_table_id), data: { turbolinks: false } %>
<% end %>
</li>
<% if can_manage_result?(result) %>
<% if can_delete_result?(result) %>
<li>
<%= link_to t('my_modules.module_archive.option_delete'),
result_path(action: :delete, id: result.id),

View file

@ -14,7 +14,7 @@ describe ResultsController, type: :controller do
let(:experiment) { create :experiment, project: project }
let(:task) { create :my_module, name: 'test task', experiment: experiment }
let(:result) do
create :result, name: 'test result', my_module: task, user: user
create :result, :archived, name: 'test result', my_module: task, user: user
end
let!(:result_text) do
create :result_text, text: 'test text result', result: result

View file

@ -5,5 +5,10 @@ FactoryBot.define do
name { Faker::Name.unique.name }
user
my_module
trait :archived do
archived { true }
archived_on { Time.zone.now }
archived_by { user }
end
end
end