Fix removing user from public projects [SCI-9174] (#6130)

This commit is contained in:
Alex Kriuchykhin 2023-09-05 11:36:26 +02:00 committed by GitHub
parent df290ad3b3
commit 90cd330126
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 13 deletions

View file

@ -99,21 +99,11 @@ module AccessPermissions
raise ActiveRecord::RecordInvalid
end
if @project.visible?
user_assignment.update!(
user_role: @project.default_public_user_role,
assigned: :automatically
)
else
user_assignment.destroy!
end
propagate_job(user_assignment, destroy: true)
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
render json: { flash: t('access_permissions.destroy.success', member_name: escape_input(user.full_name)) }
rescue ActiveRecord::RecordInvalid
render json: { flash: t('access_permissions.destroy.failure') },
status: :unprocessable_entity

View file

@ -65,12 +65,14 @@ module UserAssignments
user_assignment = object.user_assignments.find { |ua| ua.user_id == @user.id }
return if user_assignment.blank?
if !object.is_a?(Project) && object.project.visible? && !@remove_from_team
project = object.is_a?(Project) ? object : object.project
if project.visible? && !@remove_from_team
# if project is public, the assignment
# will reset to the default public role
user_assignment.update!(
user_role_id: object.project.default_public_user_role_id,
user_role_id: project.default_public_user_role_id,
assigned: :automatically,
assigned_by: @assigned_by
)