Add new activites for all team members [SCI-8224] (#5227)

This commit is contained in:
ajugo 2023-03-30 16:04:57 +02:00 committed by GitHub
parent 03ff08763b
commit e1cf9775fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 53 additions and 27 deletions

View file

@ -47,7 +47,8 @@ module AccessPermissions
@user_assignment.update!(permitted_update_params)
log_activity(:change_user_role_on_project, @user_assignment)
log_activity(:change_user_role_on_project, { user_target: @user_assignment.user.id,
role: @user_assignment.user_role.name })
propagate_job(@user_assignment)
respond_to do |format|
@ -67,16 +68,7 @@ module AccessPermissions
if user_assignment_params[:user_id] == 'all'
@project.update!(visibility: :visible, default_public_user_role_id: user_assignment_params[:user_role_id])
Activities::CreateActivityService
.call(activity_type: :change_project_visibility,
owner: current_user,
subject: @project,
team: @project.team,
project: @project,
message_items: {
project: @project.id,
visibility: t('projects.activity.visibility_visible')
})
log_activity(:change_project_visibility, { visibility: t('projects.activity.visibility_visible') })
else
user_assignment = UserAssignment.find_or_initialize_by(
@ -91,7 +83,8 @@ module AccessPermissions
assigned: :manually
)
log_activity(:assign_user_to_project, user_assignment)
log_activity(:assign_user_to_project, { user_target: user_assignment.user.id,
role: user_assignment.user_role.name })
created_count += 1
propagate_job(user_assignment)
end
@ -126,7 +119,8 @@ module AccessPermissions
end
propagate_job(user_assignment, destroy: true)
log_activity(:unassign_user_from_project, user_assignment)
log_activity(:unassign_user_from_project, { user_target: user_assignment.user.id,
role: user_assignment.user_role.name })
render json: { flash: t('access_permissions.destroy.success', member_name: escape_input(user.full_name)) },
status: :ok
@ -141,6 +135,13 @@ module AccessPermissions
@project.assign_attributes(permitted_default_public_user_role_params)
@project.save!
if permitted_default_public_user_role_params[:default_public_user_role_id].blank?
log_activity(:change_project_visibility, { visibility: t('projects.activity.visibility_hidden') })
else
log_activity(:project_access_changed_all_team_members,
{ team: @project.team.id, role: @project.default_public_user_role&.name })
end
UserAssignments::ProjectGroupAssignmentJob.perform_later(current_team, @project, current_user)
end
end
@ -194,16 +195,16 @@ module AccessPermissions
)
end
def log_activity(type_of, user_assignment)
def log_activity(type_of, message_items = {})
message_items = { project: @project.id }.merge(message_items)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @project,
team: @project.team,
project: @project,
message_items: { project: @project.id,
user_target: user_assignment.user.id,
role: user_assignment.user_role.name })
message_items: message_items)
end
end
end

View file

@ -44,7 +44,8 @@ module AccessPermissions
end
@user_assignment.update!(permitted_update_params)
log_activity(:protocol_template_access_changed, @user_assignment)
log_activity(:protocol_template_access_changed, { user_target: @user_assignment.user.id,
role: @user_assignment.user_role.name })
respond_to do |format|
format.json do
@ -63,6 +64,8 @@ module AccessPermissions
if user_assignment_params[:user_id] == 'all'
@protocol.update!(default_public_user_role_id: user_assignment_params[:user_role_id])
log_activity(:protocol_template_access_granted_all_team_members,
{ team: @protocol.team.id, role: @protocol.default_public_user_role&.name })
else
user_assignment = UserAssignment.find_or_initialize_by(
assignable: @protocol,
@ -77,7 +80,8 @@ module AccessPermissions
)
created_count += 1
log_activity(:protocol_template_access_granted, user_assignment)
log_activity(:protocol_template_access_granted, { user_target: user_assignment.user.id,
role: user_assignment.user_role.name })
end
end
@ -110,7 +114,8 @@ module AccessPermissions
else
user_assignment.destroy!
end
log_activity(:protocol_template_access_revoked, user_assignment)
log_activity(:protocol_template_access_revoked, { user_target: user_assignment.user.id,
role: user_assignment.user_role.name })
end
render json: { flash: t('access_permissions.destroy.success', member_name: user.full_name) }
@ -121,7 +126,15 @@ module AccessPermissions
end
def update_default_public_user_role
current_role = @protocol.default_public_user_role.name
@protocol.update!(permitted_default_public_user_role_params)
type_of = if @protocol.default_public_user_role.present?
:protocol_template_access_changed_all_team_members
else
:protocol_template_access_revoked_all_team_members
end
log_activity(type_of, { team: @protocol.team.id, role: @protocol.default_public_user_role&.name || current_role })
end
private
@ -156,16 +169,16 @@ module AccessPermissions
render_403 unless can_read_protocol_in_repository?(@protocol)
end
def log_activity(type_of, user_assignment)
def log_activity(type_of, message_items = {})
message_items = { protocol: @protocol.id }.merge(message_items)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @protocol,
team: @protocol.team,
project: nil,
message_items: { protocol: @protocol.id,
user_target: user_assignment.user.id,
role: user_assignment.user_role.name })
message_items: message_items)
end
end
end

View file

@ -437,11 +437,15 @@ class Extends
protocol_template_access_changed: 234,
protocol_template_access_revoked: 235,
task_protocol_save_to_template: 236,
protocol_template_draft_created: 237
protocol_template_draft_created: 237,
protocol_template_access_granted_all_team_members: 238,
protocol_template_access_changed_all_team_members: 239,
protocol_template_access_revoked_all_team_members: 240,
project_access_changed_all_team_members: 241
}
ACTIVITY_GROUPS = {
projects: [*0..7, 32, 33, 34, 95, 108, 65, 109, *158..162],
projects: [*0..7, 32, 33, 34, 95, 108, 65, 109, *158..162, 241],
task_results: [23, 26, 25, 42, 24, 40, 41, 99, 110, 122, 116, 128, 169, 172, 178],
task: [8, 58, 9, 59, *10..14, 35, 36, 37, 53, 54, *60..63, 138, 139, 140, 64, 66, 106, 126, 120, 132,
*146..148, 166],
@ -454,7 +458,7 @@ class Extends
78, 96, 107, 113, 114, *133..136, 180, 181, 182],
protocol_repository: [80, 103, 89, 87, 79, 90, 91, 88, 85, 86, 84, 81, 82,
83, 101, 112, 123, 125, 117, 119, 129, 131, 170, 173, 179, 187, 186,
190, 191, *204..215, 220, 221, 223, 227, 228, 229, *230..235, 237],
190, 191, *204..215, 220, 221, 223, 227, 228, 229, *230..235, *237..240],
team: [92, 94, 93, 97, 104],
label_repository: [*216..219]
}

View file

@ -261,7 +261,11 @@ en:
protocol_template_access_granted_html: "%{user} granted with access %{user_target} with user role %{role} to protocol template %{protocol}."
protocol_template_access_changed_html: "%{user} changed %{user_target}s role on protocol template %{protocol} to %{role}."
protocol_template_access_revoked_html: "%{user} removed %{user_target} with user role %{role} from protocol template %{protocol}."
protocol_template_access_granted_all_team_members_html: "%{user} granted with access all team members of %{team} team with user role %{role} to protocol template %{protocol}."
protocol_template_access_changed_all_team_members_html: "%{user} changed %{team}s role on protocol template %{protocol} to %{role}."
protocol_template_access_revoked_all_team_members_html: "%{user} removed %{team} team members with user role %{role} from protocol template %{protocol}."
task_protocol_save_to_template_html: "%{user} created a new protocol template %{protocol} from a task."
project_access_changed_all_team_members_html: "%{user} changed %{team}s role on project %{project} to %{role}."
activity_name:
create_project: "Project created"
rename_project: "Project renamed"
@ -478,6 +482,10 @@ en:
protocol_template_access_changed: "User role changed on a protocol"
protocol_template_access_revoked: "User removed from a protocol"
task_protocol_save_to_template: "Save as new protocol template"
protocol_template_access_granted_all_team_members: "Grant access to all team members"
protocol_template_access_changed_all_team_members: "Change role of all team members"
protocol_template_access_revoked_all_team_members: "Remove access from all team members"
project_access_changed_all_team_members: "Change role of all team members"
activity_group:
projects: "Projects"
task_results: "Task results"