Como parar o login do usuário excluído com o Devise

Atualmente, uso o Devise para registro / autenticação de usuários em um projeto Rails. Quando um usuário deseja cancelar sua conta, o objeto do usuário é excluído de maneira semelhante à seguint

Como "excluir com facilidade" o usuário com o Devise

A minha implementação tem uma pequena diferença dessa maneira. O modelo do usuário tem um atributo 'delete_flag'. E, o método soft_delete executa "update_attribtue (: delete_flag, true)"

Mas, eu tenho que implementar ação sign_in. Na minha implementação, é o seguinte:

class SessionsController < Devise::SessionsController
  def create
    resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")    

    if resource.deleted_flag
      p "deleted account : " + resource.deleted_flag.to_s
      sign_out(resource)
      render :controller => :users, :action => :index
    else
      if is_navigational_format?
        if resource.sign_in_count == 1
          set_flash_message(:notice, :signed_in_first_time)
        else
          set_flash_message(:notice, :signed_in)
        end
      end
      sign_in(resource_name, resource)
      respond_with resource, :location => redirect_location(resource_name, resource)
    end
  end
end

Acho que esse código tem pontos estranho

Se o usuário excluído tentar cantar, o sistema permitirá o log e efetua o logout imediatamente. E o sistema não pode exibir a mensagem flash [: alert] ...

Quero saber dois pontos.

Como faço para implementar para proibir que usuários excluídos façam login?Como implemento para exibir o flash [: alerta] quando o usuário excluído tenta fazer login?

questionAnswers(3)

yourAnswerToTheQuestion