ruby-on-rails - hacer - login rails
Rails 3 con Devise for Authentication: ¿cómo creo manualmente un usuario? (2)
El skip_confirmation!
el método está disponible para cualquier modelo confirmable
.
@user = User.new params[:user]
@user.skip_confirmation! # Sets confirmed_at to Time.now, activating the account
@user.save
La cuenta de usuario se activará sin embargo. Si no quieres eso, continúa leyendo.
Devise utiliza devoluciones de llamada condicionales para generar el token de confirmación y enviar el correo electrónico. Se llamarán las devoluciones de llamada solo si se confirmation_required?
devuelve true
. Redefinirlo en su modelo:
def confirmation_required?
false
end
Sin embargo, esto hará que active_for_authentication?
El método siempre devuelve verdadero porque se necesita si se requiere confirmación en la cuenta o no. Tenemos que redefinir eso también:
def active_for_authentication?
confirmed? || confirmation_period_valid?
end
De esta forma, la cuenta permanecerá inactiva y no se enviará ningún correo electrónico de confirmación. ¡Deberá activar manualmente al usuario llamando a confirm!
en el registro o simplemente estableciendo confirmed_at
en cualquier fecha.
Es bastante pirateo, pero debería funcionar.
Para referencia: confirmable.rb
Me gustaría crear manualmente nuevos User
, sin forzarlos a verificar su dirección de correo electrónico.
La idea es permitir que los usuarios existentes agreguen automáticamente sus amigos sin requerir su registro. Tiene sentido para el caso de negocio que estoy trabajando para resolver.
¿Cómo se puede lograr esto con Devise?
Solo quiero agregar para futuras referencias que desde el Devise 2.2 ahora hay un skip_confirmation_notification!
método disponible, que básicamente hace todo desde la publicación de Matheus sin redefinir los métodos en el modelo.