J'ai un rôle d'utilisateur et d'administrateur dans mon projet. J'ai créé mon authentification avec Devise.Confirmation d'enregistrement de devise
Dans mon rôle d'administrateur, je n'ai aucune confirmation. Dans mon modèle d'utilisateur, je donne les résultats suivants:
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
Ma migration ressemble:
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
Dans mon routes.rb j'ai ajouté les déclarations suivantes:
map.devise_for :admins
map.devise_for :users, :path_names => { :sign_up => "register", :sign_in => "login" }
map.root :controller => "main"
Après l'enregistrement de l'utilisateur Je suis redirigé vers le contrôleur main
avec la mention "Vous êtes inscrit (e)", et je suis connecté (e). Mais je ne veux pas être connecté, car je n'ai pas confirmé mon nouvel utilisateur. nt encore.
Si j'ouvre la console, je vois dans les journaux le texte du mail de confirmation, mais je suis déjà connecté. Je ne peux pas expliquer pourquoi. est-ce que quelqu'un a une idée?
Si je copie la confirmation-jeton à partir des journaux et confirme mon compte, je peux vous connecter, mais si je ne pas confirmer, je peux également vous connecter.
ouais c'était ça! Merci. Guitsaru j'ai une autre question, peut-être vous pouvez m'aider. Je veux tester peu de choses dans le test fonctionnel et pour cette raison, je dois me connecter à un utilisateur. l'assistant de connexion est bon et fonctionne très bien, mais j'ai des problèmes avec la confirmation. si je fais signe_in Utilisateur.make (je développe avec machiniste), l'Utilisateur sera fait, mais pas confirmé. Si je le fais: sign_in User.make (: confirmed_at => Time.now,: confirmation_sent_at => Time.now, ....) Ça ne marche pas. As-tu une idée de ce que je pourrais faire? – Mattherick
Essayez d'utiliser la fonction de confirmation! utilisateur = User.make user.confirm! – guitsaru
merci l'homme! c'était ça! m'a sauvé de googeling une autre demi-journée :) – Mattherick