Skip to content

Commit 213c54d

Browse files
committed
Controller implementation of transfers
1 parent a30ed4f commit 213c54d

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

app/controllers/registers_controller.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,22 @@ def transfer_user
501501

502502
# POST /register/r:abc/transfer_user
503503
def transfer_user_commit
504+
username = params.require(:register)[:user]
505+
user = User.find_by_email_or_username(username)
506+
507+
if !user.present?
508+
flash[:alert] = 'The user could not be found'
509+
render :transfer_user
510+
elsif @register.transfer(current_user, user)
511+
flash[:notice] =
512+
'List and name(s) successfully transferred to the new user'
513+
redirect_back(fallback_location: @register)
514+
else
515+
flash[:alert] =
516+
'The list has not been transferred due to a failed check: ' +
517+
@register.status_alert
518+
render :transfer_user
519+
end
504520
end
505521

506522
# GET /registers/r:abc/merge

app/models/register/status.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,12 @@ def transfer(user, to_user)
273273
end
274274

275275
ActiveRecord::Base.transaction do
276-
names.each { |name| name.transfer(user, to_user) }
276+
names.each do |name|
277+
unless name.transfer(user, to_user)
278+
@status_alert = "#{name.name}: #{name.status_alert}"
279+
return false
280+
end
281+
end
277282
update_status_with_alert(user: to_user) or return false
278283
end
279284
notify_status_change(:transfer, user)

0 commit comments

Comments
 (0)