From 5994e8c6a6810968fe326d1b3c99a5652f45a312 Mon Sep 17 00:00:00 2001 From: Miha Mencin Date: Mon, 25 May 2020 15:49:31 +0200 Subject: [PATCH] SCI-4674 create special permissions for snapshots on task --- .../my_module_repository_snapshots_controller.rb | 6 +++--- app/permissions/experiment.rb | 10 ++++++++++ .../repositories/_full_view_sidebar.html.erb | 6 +++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/controllers/my_module_repository_snapshots_controller.rb b/app/controllers/my_module_repository_snapshots_controller.rb index bbf5f5f66..d13bf084c 100644 --- a/app/controllers/my_module_repository_snapshots_controller.rb +++ b/app/controllers/my_module_repository_snapshots_controller.rb @@ -36,7 +36,7 @@ class MyModuleRepositorySnapshotsController < ApplicationController render json: { html: render_to_string(partial: 'my_modules/repositories/full_view_version', locals: { repository_snapshot: repository_snapshot, - can_delete_snapshot: can_assign_repository_rows_to_module?(@my_module) }) + can_delete_snapshot: can_manage_repository_snapshots?(@my_module) }) } end @@ -50,7 +50,7 @@ class MyModuleRepositorySnapshotsController < ApplicationController render json: { html: render_to_string(partial: 'my_modules/repositories/full_view_version', locals: { repository_snapshot: @repository_snapshot, - can_delete_snapshot: can_assign_repository_rows_to_module?@my_module) }) + can_delete_snapshot: can_manage_repository_snapshots?(@my_module) }) } end @@ -124,6 +124,6 @@ class MyModuleRepositorySnapshotsController < ApplicationController end def check_manage_permissions - render_403 unless can_assign_repository_rows_to_module?(@my_module) + render_403 unless can_manage_repository_snapshots?(@my_module) end end diff --git a/app/permissions/experiment.rb b/app/permissions/experiment.rb index d404d1528..4ad1267cb 100644 --- a/app/permissions/experiment.rb +++ b/app/permissions/experiment.rb @@ -112,6 +112,16 @@ Canaid::Permissions.register_for(MyModule) do can :create_comments_in_module do |user, my_module| can_create_comments_in_project?(user, my_module.experiment.project) end + + # module: create a snapshot of repository item + can :create_repository_snapshot do |user, my_module| + user.is_technician_or_higher_of_project?(my_module.experiment.project) + end + + # module: make a repository snapshot selected + can :manage_repository_snapshots do |user, my_module| + user.is_technician_or_higher_of_project?(my_module.experiment.project) + end end Canaid::Permissions.register_for(Protocol) do diff --git a/app/views/my_modules/repositories/_full_view_sidebar.html.erb b/app/views/my_modules/repositories/_full_view_sidebar.html.erb index 5ffe465f1..2643c75e2 100644 --- a/app/views/my_modules/repositories/_full_view_sidebar.html.erb +++ b/app/views/my_modules/repositories/_full_view_sidebar.html.erb @@ -32,7 +32,7 @@ <% end %> <% end %> - <% if @repository.present? && live_items_present && can_assign_repository_rows_to_module?(@my_module) %> + <% if @repository.present? && live_items_present && can_create_repository_snapshot?(@my_module) %>

<%= t('my_modules.repository.snapshots.full_view.no_snapshots_label') %> @@ -48,11 +48,11 @@ <%= render partial: 'my_modules/repositories/full_view_version', collection: @repository_snapshots, as: :repository_snapshot, - locals: { can_delete_snapshot: can_assign_repository_rows_to_module?(@my_module) } %> + locals: { can_delete_snapshot: can_manage_repository_snapshots?(@my_module) } %>

- <% if can_assign_repository_rows_to_module(@my_module) %> + <% if can_manage_repository_snapshots(@my_module) %>