module Devise::Models::Approvable
Public Class Methods
included(base)
click to toggle source
# File lib/devise_approvable/model.rb, line 5 def self.included(base) puts "Devise::Models::Approvable module injected into #{self.class} class" base.class_eval do extend ClassMethods before_create :generate_approval_token, :if => :approval_required? after_create :send_approval_instructions, :unless => :approved? end end
Public Instance Methods
active_for_authentication?()
click to toggle source
override
Calls superclass method
# File lib/devise_approvable/model.rb, line 17 def active_for_authentication? super && approved? end
approve!()
click to toggle source
# File lib/devise_approvable/model.rb, line 31 def approve! self.approved_at = Time.now.utc self.approval_token = nil save(:validate => false) end
approved?()
click to toggle source
Verifies whether a user is confirmed or not
# File lib/devise_approvable/model.rb, line 38 def approved? !!self.approved_at end
inactive_message()
click to toggle source
override
Calls superclass method
# File lib/devise_approvable/model.rb, line 22 def inactive_message if !approved? :not_approved else super # Use whatever other message end end
send_approval_instructions()
click to toggle source
Send approval instructions by email
# File lib/devise_approvable/model.rb, line 48 def send_approval_instructions unless @raw_approval_token generate_approval_token! end opts = { to: "dev-approvals@curbcall.com" } send_devise_notification(:approval_instructions, @raw_approval_token, opts) end
skip_approval!()
click to toggle source
# File lib/devise_approvable/model.rb, line 42 def skip_approval! self.approved_at = Time.now.utc @skip_approval = true end
Protected Instance Methods
approval_required?()
click to toggle source
# File lib/devise_approvable/model.rb, line 59 def approval_required? !@skip_approval end
generate_approval_token()
click to toggle source
# File lib/devise_approvable/model.rb, line 67 def generate_approval_token raw, enc = Devise.token_generator.generate(self.class, :approval_token) @raw_approval_token = raw self.approval_token = enc self.approval_sent_at = Time.now.utc end
generate_approval_token!()
click to toggle source
# File lib/devise_approvable/model.rb, line 63 def generate_approval_token! generate_approval_token && save(validate: false) end