scinote-web/app/helpers/user_assignments_helper.rb

54 lines
2.3 KiB
Ruby
Raw Normal View History

2021-04-18 23:19:16 +08:00
# frozen_string_literal: true
module UserAssignmentsHelper
def current_assignee_name(assignee)
display_name = if assignee == current_user
[assignee.name, t('user_assignment.current_assignee')].join(' ')
else
assignee.name
end
sanitize_input(display_name)
end
def user_assignment_resource_role_name(user_assignment, user, resource)
# Triggers N+1 but the partial is cached
if resource.is_a?(Experiment)
project_user_assignment_name = resource.permission_parent
.user_assignments
.find_by(user: user)
.user_role
.name
current_user_assignment_name = user_assignment.user_role.name
[
t('user_assignment.from_project', user_role: project_user_assignment_name),
(current_user_assignment_name unless current_user_assignment_name == project_user_assignment_name)
].compact.join(' / ')
elsif resource.is_a?(MyModule)
project_user_assignment_name = resource.permission_parent
.permission_parent
.user_assignments
.find_by(user: user)
.user_role
.name
experiment_user_assignment_name = resource.permission_parent
.user_assignments
.find_by(user: user)
.user_role
.name
current_user_assignment_name = user_assignment.user_role.name
2021-05-09 22:59:10 +08:00
[
2021-05-22 20:41:56 +08:00
t('user_assignment.from_project',
user_role: project_user_assignment_name),
2021-05-22 20:41:56 +08:00
(t('user_assignment.from_experiment',
user_role: experiment_user_assignment_name) unless project_user_assignment_name == experiment_user_assignment_name),
(current_user_assignment_name unless experiment_user_assignment_name == current_user_assignment_name)
2021-05-09 22:59:10 +08:00
].compact.join(' / ')
else
user_assignment.user_role.name
end
end
2021-04-18 23:19:16 +08:00
end