1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00

Allow devise :all, :except => :foo to be given.

This commit is contained in:
José Valim 2009-10-18 13:30:32 -02:00
parent b69d822d51
commit 9051d842c0
4 changed files with 23 additions and 12 deletions

View file

@ -5,6 +5,17 @@ rescue
require 'warden'
end
module Devise
ALL = [:authenticable, :confirmable, :recoverable, :validatable].freeze
# Maps controller names to devise modules
CONTROLLERS = {
:sessions => :authenticable,
:passwords => :recoverable,
:confirmations => :confirmable
}.freeze
end
require 'devise/warden'
require 'devise/mapping'
require 'devise/routes'

View file

@ -21,11 +21,18 @@ module Devise
#
# # shortcut to include all modules (same as above)
# devise :all
def devise(*options)
options = [:confirmable, :recoverable, :validatable] if options.include?(:all)
options |= [:authenticable]
#
# # include all except :recoverable
# devise :all, :except => :recoverable
#
def devise(*modules)
options = modules.extract_options!
options.each do |m|
modules = Devise::ALL if modules.include?(:all)
modules -= Array(options[:except]) if options.key?(:except)
modules |= [:authenticable]
modules.each do |m|
devise_modules << m.to_sym
include Devise::Models.const_get(m.to_s.classify)
end

View file

@ -1,11 +1,4 @@
module Devise
# Maps controller names to devise modules
CONTROLLERS = {
:sessions => :authenticable,
:passwords => :recoverable,
:confirmations => :confirmable
}.freeze
# Responsible for handling devise mappings and routes configuration. Each
# resource configured by devise_for in routes is actually creating a mapping
# object. You can refer to devise_for in routes for usage options.

View file

@ -1,3 +1,3 @@
class Admin < ActiveRecord::Base
devise :validatable
devise :all, :except => [:recoverable, :confirmable]
end