Commit 5b573130 authored by Valery Sizov's avatar Valery Sizov
Browse files

Note the original location of a moved project when notifying users of the move

parent f495f97d82f4
......@@ -18,6 +18,7 @@ v 8.1.0 (unreleased)
- Move CI triggers page to project settings area
- Move CI project settings page to CE project settings area
- Fix bug when removed file was not appearing in merge request diff
- Note the original location of a moved project when notifying users of the move
v 8.0.3
- Fix URL shown in Slack notifications
......
......@@ -50,10 +50,11 @@ def project_invite_declined_email(project_id, invite_email, access_level, create
subject: subject("Invitation declined"))
end
def project_was_moved_email(project_id, user_id)
def project_was_moved_email(project_id, user_id, old_path_with_namespace)
@current_user = @user = User.find user_id
@project = Project.find project_id
@target_url = namespace_project_url(@project.namespace, @project)
@old_path_with_namespace = old_path_with_namespace
mail(to: @user.notification_email,
subject: subject("Project was moved"))
end
......
......@@ -137,7 +137,9 @@ def move_dir
end
def send_update_instructions
projects.each(&:send_move_instructions)
projects.each do |project|
project.send_move_instructions("#{path_was}/#{project.path}")
end
end
def kind
......
......@@ -481,8 +481,8 @@ def items_for(entity)
end
end
def send_move_instructions
NotificationService.new.project_was_moved(self)
def send_move_instructions(old_path_with_namespace)
NotificationService.new.project_was_moved(self, old_path_with_namespace)
end
def owner
......@@ -624,7 +624,7 @@ def rename_repo
# So we basically we mute exceptions in next actions
begin
gitlab_shell.mv_repository("#{old_path_with_namespace}.wiki", "#{new_path_with_namespace}.wiki")
send_move_instructions
send_move_instructions(old_path_with_namespace)
reset_events_cache
rescue
# Returning false does not rollback after_* transaction but gives
......
......@@ -183,12 +183,12 @@ def update_group_member(group_member)
mailer.group_access_granted_email(group_member.id)
end
def project_was_moved(project)
def project_was_moved(project, old_path_with_namespace)
recipients = project.team.members
recipients = reject_muted_users(recipients, project)
recipients.each do |recipient|
mailer.project_was_moved_email(project.id, recipient.id)
mailer.project_was_moved_email(project.id, recipient.id, old_path_with_namespace)
end
end
......
......@@ -38,7 +38,7 @@ def transfer(project, new_namespace)
project.save!
# Notifications
project.send_move_instructions
project.send_move_instructions(old_path)
# Move main repository
unless gitlab_shell.mv_repository(old_path, new_path)
......
%p
Project was moved to another location
Project #{@old_path_with_namespace} was moved to another location
%p
The project is now located under
= link_to namespace_project_url(@project.namespace, @project) do
......
Project was moved to another location
Project #{@old_path_with_namespace} was moved to another location
The project is now located under
<%= namespace_project_url(@project.namespace, @project) %>
......
......@@ -399,7 +399,7 @@
describe 'project was moved' do
let(:project) { create(:project) }
let(:user) { create(:user) }
subject { Notify.project_was_moved_email(project.id, user.id) }
subject { Notify.project_was_moved_email(project.id, user.id, "gitlab/gitlab") }
it_behaves_like 'an email sent from GitLab'
......
......@@ -427,15 +427,15 @@ def should_not_email(user_id)
should_email(@u_watcher.id)
should_email(@u_participating.id)
should_not_email(@u_disabled.id)
notification.project_was_moved(project)
notification.project_was_moved(project, "gitlab/gitlab")
end
def should_email(user_id)
expect(Notify).to receive(:project_was_moved_email).with(project.id, user_id)
expect(Notify).to receive(:project_was_moved_email).with(project.id, user_id, "gitlab/gitlab")
end
def should_not_email(user_id)
expect(Notify).not_to receive(:project_was_moved_email).with(project.id, user_id)
expect(Notify).not_to receive(:project_was_moved_email).with(project.id, user_id, "gitlab/gitlab")
end
end
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment