From 545e13304ac0cd5620900941e998af6bc52e4639 Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Mon, 21 Sep 2020 14:09:11 +0200 Subject: [PATCH 1/3] Show smart annotation for archived projects/experiments --- app/services/smart_annotations/html_preview.rb | 9 +++------ app/services/smart_annotations/permission_eval.rb | 15 +++++++-------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/app/services/smart_annotations/html_preview.rb b/app/services/smart_annotations/html_preview.rb index 206a18d4e..34e1f3df0 100644 --- a/app/services/smart_annotations/html_preview.rb +++ b/app/services/smart_annotations/html_preview.rb @@ -13,24 +13,21 @@ module SmartAnnotations def generate_prj_snippet(_, object) if object.archived? - return "Prj" \ - "#{object.name}#{I18n.t('atwho.res.archived')}" + return "Prj#{object.name} #{I18n.t('atwho.res.archived')}" end "Prj#{object.name}" end def generate_exp_snippet(_, object) if object.archived? - return "" \ - "Exp#{object.name} #{I18n.t('atwho.res.archived')}" + return "Exp#{object.name} #{I18n.t('atwho.res.archived')}" end "Exp#{object.name}" end def generate_tsk_snippet(_, object) if object.archived? - return "Tsk#{object.name} #{I18n.t('atwho.res.archived')}" + return "Tsk#{object.name} #{I18n.t('atwho.res.archived')}" end "" \ "Tsk#{object.name}" diff --git a/app/services/smart_annotations/permission_eval.rb b/app/services/smart_annotations/permission_eval.rb index e026f93aa..04817a931 100644 --- a/app/services/smart_annotations/permission_eval.rb +++ b/app/services/smart_annotations/permission_eval.rb @@ -12,25 +12,24 @@ module SmartAnnotations private def validate_prj_permissions(user, team, object) - object.team.id == team.id && can_read_project?(user, object) + object.archived = false + object.team.id == team.id && can_read_project?(user, object) && object.reload end def validate_exp_permissions(user, team, object) - object.project.team.id == team.id && can_read_experiment?(user, object) + object.archived = false + object.project.team.id == team.id && can_read_experiment?(user, object) && object.reload end def validate_tsk_permissions(user, team, object) - object.experiment.project.team.id == team.id && - can_read_experiment?(user, object.experiment) + validate_exp_permissions(user, team, object.experiment) end def validate_rep_item_permissions(user, team, object) - if object.repository - return can_read_repository?(user, object.repository) - end + return can_read_repository?(user, object.repository) if object.repository # handles discarded repositories - repository = Repository.with_discarded.find_by_id(object.repository_id) + repository = Repository.with_discarded.find_by(id: object.repository_id) # evaluate to false if repository not found return false unless repository From fde33e6e6355fbc3f5f2705f216e888dc1f8e347 Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Mon, 21 Sep 2020 14:41:51 +0200 Subject: [PATCH 2/3] Fix tests --- app/services/smart_annotations/permission_eval.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/services/smart_annotations/permission_eval.rb b/app/services/smart_annotations/permission_eval.rb index 04817a931..8d39bc598 100644 --- a/app/services/smart_annotations/permission_eval.rb +++ b/app/services/smart_annotations/permission_eval.rb @@ -13,12 +13,16 @@ module SmartAnnotations def validate_prj_permissions(user, team, object) object.archived = false - object.team.id == team.id && can_read_project?(user, object) && object.reload + permission_check = object.team.id == team.id && can_read_project?(user, object) + object.reload + permission_check end def validate_exp_permissions(user, team, object) object.archived = false - object.project.team.id == team.id && can_read_experiment?(user, object) && object.reload + permission_check = object.project.team.id == team.id && can_read_experiment?(user, object) + object.reload + permission_check end def validate_tsk_permissions(user, team, object) From 653fe6fb1ddf63715f6ce81eef606a945e3071a8 Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Thu, 24 Sep 2020 11:56:17 +0200 Subject: [PATCH 3/3] Fix markup --- app/services/smart_annotations/permission_eval.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/smart_annotations/permission_eval.rb b/app/services/smart_annotations/permission_eval.rb index 8d39bc598..15eb9af60 100644 --- a/app/services/smart_annotations/permission_eval.rb +++ b/app/services/smart_annotations/permission_eval.rb @@ -14,14 +14,14 @@ module SmartAnnotations def validate_prj_permissions(user, team, object) object.archived = false permission_check = object.team.id == team.id && can_read_project?(user, object) - object.reload + object.archived = true if object.archived_changed? permission_check end def validate_exp_permissions(user, team, object) object.archived = false permission_check = object.project.team.id == team.id && can_read_experiment?(user, object) - object.reload + object.archived = true if object.archived_changed? permission_check end