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
|
2021-05-09 00:06:07 +08:00
|
|
|
|
|
|
|
def user_assignment_resource_role_name(user_assignment, user, resource)
|
|
|
|
# Triggers N+1 but the partial is cached
|
|
|
|
|
|
|
|
if resource.is_a?(Experiment)
|
2021-06-06 15:54:47 +08:00
|
|
|
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
|
2021-05-09 00:06:07 +08:00
|
|
|
|
|
|
|
[
|
2021-06-06 15:54:47 +08:00
|
|
|
t('user_assignment.from_project', user_role: project_user_assignment_name),
|
|
|
|
(current_user_assignment_name unless current_user_assignment_name == project_user_assignment_name)
|
2021-05-09 00:06:07 +08:00
|
|
|
].compact.join(' / ')
|
|
|
|
elsif resource.is_a?(MyModule)
|
2021-06-06 15:54:47 +08:00
|
|
|
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',
|
2021-06-06 15:54:47 +08:00
|
|
|
user_role: project_user_assignment_name),
|
2021-05-22 20:41:56 +08:00
|
|
|
(t('user_assignment.from_experiment',
|
2021-06-06 15:54:47 +08:00
|
|
|
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(' / ')
|
2021-05-09 00:06:07 +08:00
|
|
|
else
|
|
|
|
user_assignment.user_role.name
|
|
|
|
end
|
|
|
|
end
|
2021-04-18 23:19:16 +08:00
|
|
|
end
|