2010-05-02 9 views
5

Tengo un rol de usuario y administrador en mi proyecto. Creé mi autenticación con Devise.Confirmar el registro

En mi rol de administrador no tengo ninguna confirmación. En mi modelo de usuario tengo el siguiente:

devise :database_authenticatable, :confirmable, :recoverable, 
     :rememberable, :trackable, :validatable, :timeoutable, :registerable 

# Setup accessible (or protected) attributes for your model 
attr_accessible :email, :username, :prename, :surname, :phone, :street, :number, :location, 
       :password, :password_confirmation 

Mi migración se ve así:

class DeviseCreateUsers < ActiveRecord::Migration 
    def self.up 
    create_table(:users) do |t| 
     t.database_authenticatable :null => false 
     t.confirmable 
     t.recoverable 
     t.rememberable 
     t.trackable 
     t.timeoutable 
     t.validateable 
     t.string :username 
     t.string :prename 
     t.string :surname 
     t.string :phone 
     t.string :street 
     t.integer :number 
     t.string :location 

     t.timestamps 
    end 

    add_index :users, :email,    :unique => true 
    add_index :users, :confirmation_token, :unique => true 
    add_index :users, :reset_password_token, :unique => true 
    add_index :users, :username,    :unique => true 
    add_index :users, :prename,    :unique => false 
    add_index :users, :surname,    :unique => false 
    add_index :users, :phone,    :unique => false 
    add_index :users, :street,    :unique => false 
    add_index :users, :number,    :unique => false 
    add_index :users, :location,    :unique => false 
    end 

    def self.down 
    drop_table :users 
    end 
end 

En mi routes.rb que añade siguientes declaraciones:

map.devise_for :admins 
map.devise_for :users, :path_names => { :sign_up => "register", :sign_in => "login" } 

map.root :controller => "main" 

Después de registro de usuario Soy redirigido al controlador main con el aviso de flash, "Se ha registrado correctamente", y he iniciado sesión. Pero no quiero iniciar sesión, porque no he confirmado mi nuevo usuario. aún no.

Si abro la consola, veo en los registros el texto del correo de confirmación, pero ya estoy conectado. No puedo explicar por qué. ¿Alguien tiene alguna idea?

Si copio a cabo la confirmación en token de los registros y confirmo mi cuenta, puedo entrar, pero si yo No te confirman, también puedo iniciar sesión.

Respuesta

8

En config/inicializadores/idear. rb hay una línea para establecer la cantidad de tiempo que un usuario debe confirmar antes de que se bloquee.

config.confirm_within = 2.days 

Si configura eso en 0, debe obtener el resultado deseado.

+0

sí, eso fue todo! Gracias. guitsaru tengo otra pregunta, tal vez me puede ayudar. quiero probar algunas cosas en la prueba funcional y debido a esto, tengo que iniciar sesión en un usuario. el inicio de sesión es bueno y funciona muy bien, pero tengo problemas con la confirmación. si hago sign_in User.make (desarrollo con maquinista), el usuario será make, pero no confirmado. Si lo hago así: sign_in User.make (: confirmed_at => Time.now,: confirmation_sent_at => Time.now, ....) No funciona. ¿Tienes una idea de lo que podría hacer? – Mattherick

+2

¡Intenta usar confirmar! user = User.make user.confirm! – guitsaru

+0

gracias hombre! ¡eso fue todo! me salvó de googeling otro medio día :) – Mattherick

Cuestiones relacionadas