diff --git a/app/controllers/internal/users_controller.rb b/app/controllers/internal/users_controller.rb index 674bee291..aecbd9053 100644 --- a/app/controllers/internal/users_controller.rb +++ b/app/controllers/internal/users_controller.rb @@ -49,7 +49,9 @@ class Internal::UsersController < Internal::ApplicationController comment.destroy! end user.articles.each &:destroy! + user.remove_from_index! user.save! + user.update!(old_username: nil) rescue => e flash[:error] = e.message end diff --git a/app/services/user_role_service.rb b/app/services/user_role_service.rb index dddef2b5a..2bd879e8b 100644 --- a/app/services/user_role_service.rb +++ b/app/services/user_role_service.rb @@ -14,20 +14,20 @@ class UserRoleService end def update_tag_moderators(user_ids, tag) - users = user_ids.map { |id| User.find(id) } + users = user_ids.map do |id| + User.find(id) + rescue + tag.errors[:moderator_ids] << ": user id #{id} was not found" + end + return false if !tag.errors[:moderator_ids].blank? # Andy: Don't have to worry about comparing old and new values. tag.tag_moderator_ids.each do |id| User.find(id).remove_role(:tag_moderator, tag) - puts "removed #{id}" end users.each do |user| user.add_role(:tag_moderator, tag) - puts "added #{user.id}" end return true - rescue ActiveRecord::RecordNotFound - tag.errors[:moderator_ids] << ": user #{id} was not found" - return false end private