Merge pull request #2857 from aignatov-bio/ai-sci-4987-fix-smart-annotation-for-archived-projects

Show smart annotation for archived projects/experiments [SCI-4987]
This commit is contained in:
aignatov-bio 2020-09-24 13:29:49 +02:00 committed by GitHub
commit 9da27956d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 14 deletions

View file

@ -13,24 +13,21 @@ module SmartAnnotations
def generate_prj_snippet(_, object)
if object.archived?
return "<a href='#{ROUTES.projects_archive_path}'><span class='sa-type'>Prj</span>" \
"#{object.name}</a>#{I18n.t('atwho.res.archived')}"
return "<span class='sa-type'>Prj</span>#{object.name} #{I18n.t('atwho.res.archived')}"
end
"<a href='#{ROUTES.project_path(object)}'><span class='sa-type'>Prj</span>#{object.name}</a>"
end
def generate_exp_snippet(_, object)
if object.archived?
return "<a href='#{ROUTES.experiment_archive_project_path(object.project)}'>" \
"<span class='sa-type'>Exp</span>#{object.name}</a> #{I18n.t('atwho.res.archived')}"
return "<span class='sa-type'>Exp</span>#{object.name} #{I18n.t('atwho.res.archived')}"
end
"<a href='#{ROUTES.canvas_experiment_path(object)}'><span class='sa-type'>Exp</span>#{object.name}</a>"
end
def generate_tsk_snippet(_, object)
if object.archived?
return "<a href='#{ROUTES.module_archive_experiment_path(object.experiment
)}'><span class='sa-type'>Tsk</span>#{object.name}</a> #{I18n.t('atwho.res.archived')}"
return "<span class='sa-type'>Tsk</span>#{object.name} #{I18n.t('atwho.res.archived')}"
end
"<a href='#{ROUTES.protocols_my_module_path(object)}'>" \
"<span class='sa-type'>Tsk</span>#{object.name}</a>"

View file

@ -12,25 +12,28 @@ module SmartAnnotations
private
def validate_prj_permissions(user, team, object)
object.team.id == team.id && can_read_project?(user, object)
object.archived = false
permission_check = object.team.id == team.id && can_read_project?(user, object)
object.archived = true if object.archived_changed?
permission_check
end
def validate_exp_permissions(user, team, object)
object.project.team.id == team.id && can_read_experiment?(user, object)
object.archived = false
permission_check = object.project.team.id == team.id && can_read_experiment?(user, object)
object.archived = true if object.archived_changed?
permission_check
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