繁体   English   中英

Rails:自定义Devise Confirmable模块?

[英]Rails: Customize Devise Confirmable module?

我有我的Rails应用程序设置与Devise ,但它仍处于开发阶段。 我还有一个Thor任务,可以创建默认的Admin用户。

问题是在确认帐户之前,Devise不会让该管理员用户登录该站点。 有没有办法可以禁用可确认模块来创建特定用户,例如Admin?

我的托尔任务:

class Setup < Thor
  desc "create_admin [EMAIL] [PASSWORD]", "Creates the administrative user."
  def create_admin(email = "admin@bogus.com", password = "testpassword123")
    require File.expand_path('config/environment.rb') # load Rails environment
    admin = User.create(:email => email, :password => password, :password_confirmation => password)
    admin.assign_role :admin
    puts "Admin user (#{ email }) created."
  end
end

创建用户后,您可以致电设备确认! 方法而不是直接更新数据库。 例如。:

admin = User.create(:email => email, :password => password, :password_confirmation => password)
admin.assign_role :admin
admin.confirm!

这应该工作

admin = User.create(:email => email, :password => password, :password_confirmation => password)

因此,您的confirmed_at已设置,这是在检查用户确认时所指的字段设计。

编辑

原谅我,如果这看起来像一个黑客,但这似乎对我有用。 执行上述行后,

admin.update_attributes(:confirmed_at => Time.now)

只是注释:confirmable在用户或管理员模型中:confirmable

devise :database_authenticatable, :recoverable, :rememberable, :trackable, #:confirmable...

在config / inicializers / devise.rb中,您可以在此设置用户必须确认其帐户的时间

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM