Lors de l'exécution d'une application, comment sélectionner un utilisateur par adresse électronique, puis définir le mot de passe manuellement dans Rails console
pour Devise?
En outre, où irais-je pour examiner la documentation afin de fournir plus de détails à ce sujet en ce qui concerne la manipulation des comptes lors de l’utilisation de Devise?
C'est plus ou moins ce que vous avez décrit :-)
# use mongoid
class User
include Mongoid::Document
end
# then
user = User.where(email: '[email protected]').first
if user
user.password = new_password
user.password_confirmation = new_password
user.save
end
Un système moderne permet une syntaxe plus simple, pas besoin de définir le champ de confirmation
user.password = new_password; user.save
# or
user.update_attributes(password: new_password)
# $ Rails console production
u=User.where(:email => '[email protected]').first
u.password='userpassword'
u.password_confirmation='userpassword'
u.save!
Si vous exécutez ce qui suit dans la console Rails), cela devrait faire l'affaire:
User.find_by(email: 'user_email_address').reset_password!('new_password','new_password')
http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Recoverable
Vous pouvez simplement mettre à jour le champ de mot de passe, aucun mot de passe de confirmation n'est nécessaire, le système l'enregistrera sous forme cryptée.
u = User.find_by_email('[email protected]')
u.update_attribute(:password, '123123')
Pour une raison quelconque, (Rails 2.3 ??)
user = User.where(:email => email).first
n'a pas fonctionné pour moi, mais
user = User.find_by_email('[email protected]')
l'a fait.
1.Connectez-vous à la console Ralis
$ Sudo bundle exec Rails console production
2.Alors mettre à jour le mot de passe de l'administrateur
irb(main):001:0> user = User.where("username = 'root'")
irb(main):002:0> u = user.first
irb(main):003:0> u.password="root2014@Robin"
=> "root2014@Robin"
irb(main):004:0> u.password_confirmation="root2014@Robin"
=> "root2014@Robin"
irb(main):005:0> u.save
=> true
irb(main):006:0> exit
3.Refresh de la page de connexion, utilisez le nouveau mot de passe pour vous connecter, profitez-en!
Bonne chance!
User.find_by_email('[email protected]').update_attributes(:password => 'password')
Si votre compte est bloqué par trop de tentatives de connexion, vous devrez peut-être aussi:
user.locked_at = ''
user.failed_attempts = '0'
user.save!