mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-27 17:30:32 +08:00
Add new activites for all team members [SCI-8224] (#5227)
This commit is contained in:
parent
03ff08763b
commit
e1cf9775fd
4 changed files with 53 additions and 27 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue