loyal_devise 2.1.2 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +2 -0
- data/.travis.yml +14 -9
- data/.yardopts +9 -0
- data/CHANGELOG.rdoc +60 -5
- data/CONTRIBUTING.md +4 -2
- data/Gemfile +7 -7
- data/Gemfile.lock +107 -101
- data/MIT-LICENSE +1 -1
- data/README.md +110 -48
- data/Rakefile +1 -0
- data/app/controllers/devise/confirmations_controller.rb +2 -4
- data/app/controllers/devise/omniauth_callbacks_controller.rb +0 -1
- data/app/controllers/devise/passwords_controller.rb +16 -5
- data/app/controllers/devise/registrations_controller.rb +13 -7
- data/app/controllers/devise/sessions_controller.rb +6 -6
- data/app/controllers/devise/unlocks_controller.rb +3 -4
- data/app/controllers/devise_controller.rb +12 -33
- data/app/helpers/devise_helper.rb +0 -1
- data/app/mailers/devise/mailer.rb +7 -8
- data/app/views/devise/mailer/confirmation_instructions.html.erb +1 -1
- data/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/devise/registrations/edit.html.erb +5 -1
- data/config/locales/en.yml +48 -48
- data/devise.gemspec +6 -6
- data/devise.png +0 -0
- data/gemfiles/{Gemfile.rails-3.1.x → Gemfile.rails-3.2.x} +8 -12
- data/gemfiles/Gemfile.rails-3.2.x.lock +156 -0
- data/lib/devise.rb +34 -11
- data/lib/devise/controllers/helpers.rb +33 -7
- data/lib/devise/controllers/rememberable.rb +6 -3
- data/lib/devise/controllers/scoped_views.rb +1 -2
- data/lib/devise/controllers/url_helpers.rb +0 -1
- data/lib/devise/delegator.rb +0 -1
- data/lib/devise/failure_app.rb +8 -2
- data/lib/devise/hooks/activatable.rb +1 -2
- data/lib/devise/hooks/forgetable.rb +0 -1
- data/lib/devise/hooks/lockable.rb +1 -2
- data/lib/devise/hooks/rememberable.rb +1 -2
- data/lib/devise/hooks/timeoutable.rb +0 -1
- data/lib/devise/hooks/trackable.rb +0 -1
- data/lib/devise/mailers/helpers.rb +18 -14
- data/lib/devise/mapping.rb +6 -7
- data/lib/devise/models.rb +0 -1
- data/lib/devise/models/authenticatable.rb +50 -27
- data/lib/devise/models/confirmable.rb +37 -16
- data/lib/devise/models/database_authenticatable.rb +17 -3
- data/lib/devise/models/lockable.rb +1 -2
- data/lib/devise/models/omniauthable.rb +1 -2
- data/lib/devise/models/recoverable.rb +10 -6
- data/lib/devise/models/registerable.rb +0 -1
- data/lib/devise/models/rememberable.rb +1 -2
- data/lib/devise/models/timeoutable.rb +1 -2
- data/lib/devise/models/token_authenticatable.rb +0 -1
- data/lib/devise/models/trackable.rb +0 -1
- data/lib/devise/models/validatable.rb +0 -1
- data/lib/devise/modules.rb +1 -2
- data/lib/devise/omniauth.rb +0 -1
- data/lib/devise/omniauth/config.rb +0 -1
- data/lib/devise/omniauth/url_helpers.rb +0 -1
- data/lib/devise/orm/active_record.rb +1 -2
- data/lib/devise/orm/mongoid.rb +1 -2
- data/lib/devise/{param_filter.rb → parameter_filter.rb} +10 -12
- data/lib/devise/parameter_sanitizer.rb +59 -0
- data/lib/devise/rails.rb +0 -1
- data/lib/devise/rails/routes.rb +22 -18
- data/lib/devise/rails/warden_compat.rb +0 -30
- data/lib/devise/strategies/authenticatable.rb +8 -6
- data/lib/devise/strategies/base.rb +1 -2
- data/lib/devise/strategies/database_authenticatable.rb +1 -2
- data/lib/devise/strategies/rememberable.rb +1 -2
- data/lib/devise/strategies/token_authenticatable.rb +38 -4
- data/lib/devise/test_helpers.rb +0 -1
- data/lib/devise/time_inflector.rb +1 -2
- data/lib/devise/version.rb +1 -2
- data/lib/generators/active_record/devise_generator.rb +1 -5
- data/lib/generators/active_record/templates/migration.rb +0 -1
- data/lib/generators/active_record/templates/migration_existing.rb +0 -1
- data/lib/generators/devise/devise_generator.rb +0 -1
- data/lib/generators/devise/install_generator.rb +0 -1
- data/lib/generators/devise/orm_helpers.rb +1 -2
- data/lib/generators/devise/views_generator.rb +8 -3
- data/lib/generators/mongoid/devise_generator.rb +1 -2
- data/lib/generators/templates/README +1 -1
- data/lib/generators/templates/devise.rb +10 -5
- data/lib/generators/templates/markerb/confirmation_instructions.markerb +1 -1
- data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +1 -0
- data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +6 -1
- data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +1 -0
- data/loyal_devise.gemspec +27 -0
- data/test/controllers/custom_strategy_test.rb +0 -1
- data/test/controllers/helpers_test.rb +0 -1
- data/test/controllers/internal_helpers_test.rb +13 -4
- data/test/controllers/passwords_controller_test.rb +32 -0
- data/test/controllers/sessions_controller_test.rb +28 -1
- data/test/controllers/url_helpers_test.rb +0 -1
- data/test/delegator_test.rb +0 -1
- data/test/devise_test.rb +12 -2
- data/test/failure_app_test.rb +3 -4
- data/test/generators/active_record_generator_test.rb +1 -4
- data/test/generators/devise_generator_test.rb +0 -1
- data/test/generators/install_generator_test.rb +0 -1
- data/test/generators/mongoid_generator_test.rb +0 -1
- data/test/generators/views_generator_test.rb +16 -2
- data/test/helpers/devise_helper_test.rb +1 -2
- data/test/integration/authenticatable_test.rb +92 -27
- data/test/integration/confirmable_test.rb +7 -7
- data/test/integration/database_authenticatable_test.rb +8 -7
- data/test/integration/http_authenticatable_test.rb +19 -2
- data/test/integration/lockable_test.rb +1 -2
- data/test/integration/omniauthable_test.rb +2 -3
- data/test/integration/recoverable_test.rb +40 -12
- data/test/integration/registerable_test.rb +17 -14
- data/test/integration/rememberable_test.rb +16 -10
- data/test/integration/timeoutable_test.rb +11 -2
- data/test/integration/token_authenticatable_test.rb +45 -2
- data/test/integration/trackable_test.rb +1 -2
- data/test/mailers/confirmation_instructions_test.rb +11 -3
- data/test/mailers/reset_password_instructions_test.rb +11 -3
- data/test/mailers/unlock_instructions_test.rb +11 -2
- data/test/mapping_test.rb +0 -1
- data/test/models/authenticatable_test.rb +6 -1
- data/test/models/confirmable_test.rb +53 -2
- data/test/models/database_authenticatable_test.rb +57 -21
- data/test/models/lockable_test.rb +1 -2
- data/test/models/omniauthable_test.rb +0 -1
- data/test/models/recoverable_test.rb +21 -5
- data/test/models/registerable_test.rb +0 -1
- data/test/models/rememberable_test.rb +4 -4
- data/test/models/serializable_test.rb +8 -8
- data/test/models/timeoutable_test.rb +0 -1
- data/test/models/token_authenticatable_test.rb +0 -1
- data/test/models/trackable_test.rb +0 -1
- data/test/models/validatable_test.rb +16 -6
- data/test/models_test.rb +7 -24
- data/test/omniauth/config_test.rb +1 -2
- data/test/omniauth/url_helpers_test.rb +4 -2
- data/test/orm/active_record.rb +1 -1
- data/test/orm/mongoid.rb +2 -4
- data/test/parameter_sanitizer_test.rb +51 -0
- data/test/rails_app/Rakefile +0 -4
- data/test/rails_app/app/active_record/admin.rb +0 -1
- data/test/rails_app/app/active_record/shim.rb +1 -2
- data/test/rails_app/app/active_record/user.rb +0 -1
- data/test/rails_app/app/controllers/admins/sessions_controller.rb +1 -2
- data/test/rails_app/app/controllers/admins_controller.rb +0 -1
- data/test/rails_app/app/controllers/application_controller.rb +1 -1
- data/test/rails_app/app/controllers/home_controller.rb +0 -1
- data/test/rails_app/app/controllers/publisher/registrations_controller.rb +1 -2
- data/test/rails_app/app/controllers/publisher/sessions_controller.rb +1 -2
- data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +1 -2
- data/test/rails_app/app/controllers/users_controller.rb +8 -1
- data/test/rails_app/app/helpers/application_helper.rb +0 -1
- data/test/rails_app/app/mailers/users/mailer.rb +4 -1
- data/test/rails_app/app/mongoid/admin.rb +4 -3
- data/test/rails_app/app/mongoid/shim.rb +3 -5
- data/test/rails_app/app/mongoid/user.rb +2 -3
- data/test/rails_app/app/views/users/edit_form.html.erb +1 -0
- data/test/rails_app/bin/bundle +3 -0
- data/test/rails_app/bin/rails +4 -0
- data/test/rails_app/bin/rake +4 -0
- data/test/rails_app/config/application.rb +1 -3
- data/test/rails_app/config/boot.rb +3 -4
- data/test/rails_app/config/environment.rb +2 -3
- data/test/rails_app/config/environments/development.rb +23 -8
- data/test/rails_app/config/environments/production.rb +68 -18
- data/test/rails_app/config/environments/test.rb +18 -16
- data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -1
- data/test/rails_app/config/initializers/devise.rb +0 -1
- data/test/rails_app/config/initializers/inflections.rb +0 -1
- data/test/rails_app/config/initializers/secret_token.rb +8 -3
- data/test/rails_app/config/initializers/session_store.rb +1 -0
- data/test/rails_app/config/routes.rb +20 -17
- data/test/rails_app/db/migrate/20100401102949_create_tables.rb +0 -1
- data/test/rails_app/db/schema.rb +0 -1
- data/test/rails_app/lib/shared_admin.rb +0 -1
- data/test/rails_app/lib/shared_user.rb +0 -2
- data/test/routes_test.rb +22 -21
- data/test/support/assertions.rb +0 -1
- data/test/support/helpers.rb +1 -2
- data/test/support/integration.rb +0 -1
- data/test/support/webrat/integrations/rails.rb +0 -1
- data/test/test_helper.rb +8 -2
- data/test/test_helpers_test.rb +0 -1
- data/test/test_models.rb +26 -0
- metadata +65 -27
- data/gemfiles/Gemfile.rails-3.1.x.lock +0 -167
- data/test/indifferent_hash.rb +0 -34
- data/test/rails_app/script/rails +0 -10
data/devise.gemspec
CHANGED
|
@@ -3,24 +3,24 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
|
3
3
|
require "devise/version"
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |s|
|
|
6
|
-
s.name = "
|
|
6
|
+
s.name = "devise"
|
|
7
7
|
s.version = Devise::VERSION.dup
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
|
9
|
+
s.licenses = ["MIT"]
|
|
9
10
|
s.summary = "Flexible authentication solution for Rails with Warden"
|
|
10
11
|
s.email = "contact@plataformatec.com.br"
|
|
11
|
-
s.homepage = "http://github.com/
|
|
12
|
+
s.homepage = "http://github.com/plataformatec/devise"
|
|
12
13
|
s.description = "Flexible authentication solution for Rails with Warden"
|
|
13
14
|
s.authors = ['José Valim', 'Carlos Antônio']
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
s.rubyforge_project = "devise"
|
|
16
17
|
|
|
17
18
|
s.files = `git ls-files`.split("\n")
|
|
18
19
|
s.test_files = `git ls-files -- test/*`.split("\n")
|
|
19
20
|
s.require_paths = ["lib"]
|
|
20
21
|
|
|
21
|
-
s.add_dependency("
|
|
22
|
-
# s.add_dependency("warden", "~> 2.0.0")
|
|
22
|
+
s.add_dependency("warden", "~> 1.2.1")
|
|
23
23
|
s.add_dependency("orm_adapter", "~> 0.1")
|
|
24
24
|
s.add_dependency("bcrypt-ruby", "~> 3.0")
|
|
25
|
-
|
|
25
|
+
s.add_dependency("railties", ">= 3.2.6", "< 5")
|
|
26
26
|
end
|
data/devise.png
ADDED
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
source "
|
|
1
|
+
source "https://rubygems.org"
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
gemspec :path => '..'
|
|
4
4
|
|
|
5
|
-
gem "rails", "~> 3.
|
|
5
|
+
gem "rails", "~> 3.2.6"
|
|
6
6
|
gem "omniauth", "~> 1.0.0"
|
|
7
7
|
gem "omniauth-oauth2", "~> 1.0.0"
|
|
8
8
|
gem "rdoc"
|
|
@@ -10,12 +10,8 @@ gem "rdoc"
|
|
|
10
10
|
group :test do
|
|
11
11
|
gem "omniauth-facebook"
|
|
12
12
|
gem "omniauth-openid", "~> 1.0.1"
|
|
13
|
-
gem "webrat", "0.7.
|
|
14
|
-
gem "mocha", :require => false
|
|
15
|
-
|
|
16
|
-
platforms :mri_18 do
|
|
17
|
-
gem "ruby-debug", ">= 0.10.3"
|
|
18
|
-
end
|
|
13
|
+
gem "webrat", "0.7.3", :require => false
|
|
14
|
+
gem "mocha", "~> 0.13.1", :require => false
|
|
19
15
|
end
|
|
20
16
|
|
|
21
17
|
platforms :jruby do
|
|
@@ -26,10 +22,10 @@ end
|
|
|
26
22
|
|
|
27
23
|
platforms :ruby do
|
|
28
24
|
gem "sqlite3"
|
|
25
|
+
end
|
|
29
26
|
|
|
27
|
+
platforms :mri_19, :mri_20 do
|
|
30
28
|
group :mongoid do
|
|
31
|
-
gem "
|
|
32
|
-
gem "mongoid", "~> 2.0"
|
|
33
|
-
gem "bson_ext", "~> 1.3.0"
|
|
29
|
+
gem "mongoid", "~> 3.0"
|
|
34
30
|
end
|
|
35
31
|
end
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: ..
|
|
3
|
+
specs:
|
|
4
|
+
devise (3.0.0.rc)
|
|
5
|
+
bcrypt-ruby (~> 3.0)
|
|
6
|
+
orm_adapter (~> 0.1)
|
|
7
|
+
railties (>= 3.2.6, < 5)
|
|
8
|
+
warden (~> 1.2.1)
|
|
9
|
+
|
|
10
|
+
GEM
|
|
11
|
+
remote: https://rubygems.org/
|
|
12
|
+
specs:
|
|
13
|
+
actionmailer (3.2.13)
|
|
14
|
+
actionpack (= 3.2.13)
|
|
15
|
+
mail (~> 2.5.3)
|
|
16
|
+
actionpack (3.2.13)
|
|
17
|
+
activemodel (= 3.2.13)
|
|
18
|
+
activesupport (= 3.2.13)
|
|
19
|
+
builder (~> 3.0.0)
|
|
20
|
+
erubis (~> 2.7.0)
|
|
21
|
+
journey (~> 1.0.4)
|
|
22
|
+
rack (~> 1.4.5)
|
|
23
|
+
rack-cache (~> 1.2)
|
|
24
|
+
rack-test (~> 0.6.1)
|
|
25
|
+
sprockets (~> 2.2.1)
|
|
26
|
+
activemodel (3.2.13)
|
|
27
|
+
activesupport (= 3.2.13)
|
|
28
|
+
builder (~> 3.0.0)
|
|
29
|
+
activerecord (3.2.13)
|
|
30
|
+
activemodel (= 3.2.13)
|
|
31
|
+
activesupport (= 3.2.13)
|
|
32
|
+
arel (~> 3.0.2)
|
|
33
|
+
tzinfo (~> 0.3.29)
|
|
34
|
+
activeresource (3.2.13)
|
|
35
|
+
activemodel (= 3.2.13)
|
|
36
|
+
activesupport (= 3.2.13)
|
|
37
|
+
activesupport (3.2.13)
|
|
38
|
+
i18n (= 0.6.1)
|
|
39
|
+
multi_json (~> 1.0)
|
|
40
|
+
arel (3.0.2)
|
|
41
|
+
bcrypt-ruby (3.0.1)
|
|
42
|
+
builder (3.0.4)
|
|
43
|
+
erubis (2.7.0)
|
|
44
|
+
faraday (0.8.7)
|
|
45
|
+
multipart-post (~> 1.1)
|
|
46
|
+
hashie (1.2.0)
|
|
47
|
+
hike (1.2.2)
|
|
48
|
+
httpauth (0.2.0)
|
|
49
|
+
i18n (0.6.1)
|
|
50
|
+
journey (1.0.4)
|
|
51
|
+
json (1.7.7)
|
|
52
|
+
jwt (0.1.8)
|
|
53
|
+
multi_json (>= 1.5)
|
|
54
|
+
mail (2.5.3)
|
|
55
|
+
i18n (>= 0.4.0)
|
|
56
|
+
mime-types (~> 1.16)
|
|
57
|
+
treetop (~> 1.4.8)
|
|
58
|
+
metaclass (0.0.1)
|
|
59
|
+
mime-types (1.23)
|
|
60
|
+
mocha (0.13.3)
|
|
61
|
+
metaclass (~> 0.0.1)
|
|
62
|
+
mongoid (3.1.3)
|
|
63
|
+
activemodel (~> 3.2)
|
|
64
|
+
moped (~> 1.4.2)
|
|
65
|
+
origin (~> 1.0)
|
|
66
|
+
tzinfo (~> 0.3.22)
|
|
67
|
+
moped (1.4.5)
|
|
68
|
+
multi_json (1.7.3)
|
|
69
|
+
multipart-post (1.2.0)
|
|
70
|
+
nokogiri (1.5.9)
|
|
71
|
+
oauth2 (0.8.1)
|
|
72
|
+
faraday (~> 0.8)
|
|
73
|
+
httpauth (~> 0.1)
|
|
74
|
+
jwt (~> 0.1.4)
|
|
75
|
+
multi_json (~> 1.0)
|
|
76
|
+
rack (~> 1.2)
|
|
77
|
+
omniauth (1.0.3)
|
|
78
|
+
hashie (~> 1.2)
|
|
79
|
+
rack
|
|
80
|
+
omniauth-facebook (1.4.0)
|
|
81
|
+
omniauth-oauth2 (~> 1.0.2)
|
|
82
|
+
omniauth-oauth2 (1.0.3)
|
|
83
|
+
oauth2 (~> 0.8.0)
|
|
84
|
+
omniauth (~> 1.0)
|
|
85
|
+
omniauth-openid (1.0.1)
|
|
86
|
+
omniauth (~> 1.0)
|
|
87
|
+
rack-openid (~> 1.3.1)
|
|
88
|
+
origin (1.1.0)
|
|
89
|
+
orm_adapter (0.4.0)
|
|
90
|
+
polyglot (0.3.3)
|
|
91
|
+
rack (1.4.5)
|
|
92
|
+
rack-cache (1.2)
|
|
93
|
+
rack (>= 0.4)
|
|
94
|
+
rack-openid (1.3.1)
|
|
95
|
+
rack (>= 1.1.0)
|
|
96
|
+
ruby-openid (>= 2.1.8)
|
|
97
|
+
rack-ssl (1.3.3)
|
|
98
|
+
rack
|
|
99
|
+
rack-test (0.6.2)
|
|
100
|
+
rack (>= 1.0)
|
|
101
|
+
rails (3.2.13)
|
|
102
|
+
actionmailer (= 3.2.13)
|
|
103
|
+
actionpack (= 3.2.13)
|
|
104
|
+
activerecord (= 3.2.13)
|
|
105
|
+
activeresource (= 3.2.13)
|
|
106
|
+
activesupport (= 3.2.13)
|
|
107
|
+
bundler (~> 1.0)
|
|
108
|
+
railties (= 3.2.13)
|
|
109
|
+
railties (3.2.13)
|
|
110
|
+
actionpack (= 3.2.13)
|
|
111
|
+
activesupport (= 3.2.13)
|
|
112
|
+
rack-ssl (~> 1.3.2)
|
|
113
|
+
rake (>= 0.8.7)
|
|
114
|
+
rdoc (~> 3.4)
|
|
115
|
+
thor (>= 0.14.6, < 2.0)
|
|
116
|
+
rake (10.0.4)
|
|
117
|
+
rdoc (3.12.2)
|
|
118
|
+
json (~> 1.4)
|
|
119
|
+
ruby-openid (2.2.3)
|
|
120
|
+
sprockets (2.2.2)
|
|
121
|
+
hike (~> 1.2)
|
|
122
|
+
multi_json (~> 1.0)
|
|
123
|
+
rack (~> 1.0)
|
|
124
|
+
tilt (~> 1.1, != 1.3.0)
|
|
125
|
+
sqlite3 (1.3.7)
|
|
126
|
+
thor (0.18.1)
|
|
127
|
+
tilt (1.4.0)
|
|
128
|
+
treetop (1.4.12)
|
|
129
|
+
polyglot
|
|
130
|
+
polyglot (>= 0.3.1)
|
|
131
|
+
tzinfo (0.3.37)
|
|
132
|
+
warden (1.2.1)
|
|
133
|
+
rack (>= 1.0)
|
|
134
|
+
webrat (0.7.3)
|
|
135
|
+
nokogiri (>= 1.2.0)
|
|
136
|
+
rack (>= 1.0)
|
|
137
|
+
rack-test (>= 0.5.3)
|
|
138
|
+
|
|
139
|
+
PLATFORMS
|
|
140
|
+
ruby
|
|
141
|
+
|
|
142
|
+
DEPENDENCIES
|
|
143
|
+
activerecord-jdbc-adapter
|
|
144
|
+
activerecord-jdbcsqlite3-adapter
|
|
145
|
+
devise!
|
|
146
|
+
jruby-openssl
|
|
147
|
+
mocha (~> 0.13.1)
|
|
148
|
+
mongoid (~> 3.0)
|
|
149
|
+
omniauth (~> 1.0.0)
|
|
150
|
+
omniauth-facebook
|
|
151
|
+
omniauth-oauth2 (~> 1.0.0)
|
|
152
|
+
omniauth-openid (~> 1.0.1)
|
|
153
|
+
rails (~> 3.2.6)
|
|
154
|
+
rdoc
|
|
155
|
+
sqlite3
|
|
156
|
+
webrat (= 0.7.3)
|
data/lib/devise.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
require 'rails'
|
|
3
2
|
require 'active_support/core_ext/numeric/time'
|
|
4
3
|
require 'active_support/dependencies'
|
|
@@ -7,12 +6,14 @@ require 'set'
|
|
|
7
6
|
require 'securerandom'
|
|
8
7
|
|
|
9
8
|
module Devise
|
|
10
|
-
autoload :Delegator,
|
|
11
|
-
autoload :FailureApp,
|
|
12
|
-
autoload :OmniAuth,
|
|
13
|
-
autoload :
|
|
14
|
-
autoload :
|
|
15
|
-
autoload :
|
|
9
|
+
autoload :Delegator, 'devise/delegator'
|
|
10
|
+
autoload :FailureApp, 'devise/failure_app'
|
|
11
|
+
autoload :OmniAuth, 'devise/omniauth'
|
|
12
|
+
autoload :ParameterFilter, 'devise/parameter_filter'
|
|
13
|
+
autoload :BaseSanitizer, 'devise/parameter_sanitizer'
|
|
14
|
+
autoload :ParameterSanitizer, 'devise/parameter_sanitizer'
|
|
15
|
+
autoload :TestHelpers, 'devise/test_helpers'
|
|
16
|
+
autoload :TimeInflector, 'devise/time_inflector'
|
|
16
17
|
|
|
17
18
|
module Controllers
|
|
18
19
|
autoload :Helpers, 'devise/controllers/helpers'
|
|
@@ -44,7 +45,7 @@ module Devise
|
|
|
44
45
|
# True values used to check params
|
|
45
46
|
TRUE_VALUES = [true, 1, '1', 't', 'T', 'true', 'TRUE']
|
|
46
47
|
|
|
47
|
-
# Custom domain for cookies. Not set by default
|
|
48
|
+
# Custom domain or key for cookies. Not set by default
|
|
48
49
|
mattr_accessor :rememberable_options
|
|
49
50
|
@@rememberable_options = {}
|
|
50
51
|
|
|
@@ -52,6 +53,10 @@ module Devise
|
|
|
52
53
|
mattr_accessor :stretches
|
|
53
54
|
@@stretches = 10
|
|
54
55
|
|
|
56
|
+
# The default key used when authenticating over http auth.
|
|
57
|
+
mattr_accessor :http_authentication_key
|
|
58
|
+
@@http_authentication_key = nil
|
|
59
|
+
|
|
55
60
|
# Keys used when authenticating a user.
|
|
56
61
|
mattr_accessor :authentication_keys
|
|
57
62
|
@@authentication_keys = [ :email ]
|
|
@@ -88,7 +93,7 @@ module Devise
|
|
|
88
93
|
# an one (and only one) @ exists in the given string. This is mainly
|
|
89
94
|
# to give user feedback and not to assert the e-mail validity.
|
|
90
95
|
mattr_accessor :email_regexp
|
|
91
|
-
@@email_regexp = /\A[
|
|
96
|
+
@@email_regexp = /\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z/
|
|
92
97
|
|
|
93
98
|
# Range validation for password length
|
|
94
99
|
mattr_accessor :password_length
|
|
@@ -103,6 +108,7 @@ module Devise
|
|
|
103
108
|
@@extend_remember_period = false
|
|
104
109
|
|
|
105
110
|
# Time interval you can access your account before confirming your account.
|
|
111
|
+
# nil - allows unconfirmed access for unlimited time
|
|
106
112
|
mattr_accessor :allow_unconfirmed_access_for
|
|
107
113
|
@@allow_unconfirmed_access_for = 0.days
|
|
108
114
|
|
|
@@ -200,6 +206,12 @@ module Devise
|
|
|
200
206
|
mattr_accessor :parent_controller
|
|
201
207
|
@@parent_controller = "ApplicationController"
|
|
202
208
|
|
|
209
|
+
# The parent mailer all Devise mailers inherit from.
|
|
210
|
+
# Defaults to ActionMailer::Base. This should be set early
|
|
211
|
+
# in the initialization process and should be set to a string.
|
|
212
|
+
mattr_accessor :parent_mailer
|
|
213
|
+
@@parent_mailer = "ActionMailer::Base"
|
|
214
|
+
|
|
203
215
|
# The router Devise should use to generate routes. Defaults
|
|
204
216
|
# to :main_app. Should be overriden by engines in order
|
|
205
217
|
# to provide custom routes.
|
|
@@ -305,7 +317,7 @@ module Devise
|
|
|
305
317
|
# == Options:
|
|
306
318
|
#
|
|
307
319
|
# +model+ - String representing the load path to a custom *model* for this module (to autoload.)
|
|
308
|
-
# +controller+ - Symbol representing the name of an
|
|
320
|
+
# +controller+ - Symbol representing the name of an existing or custom *controller* for this module.
|
|
309
321
|
# +route+ - Symbol representing the named *route* helper for this module.
|
|
310
322
|
# +strategy+ - Symbol representing if this module got a custom *strategy*.
|
|
311
323
|
#
|
|
@@ -415,6 +427,17 @@ module Devise
|
|
|
415
427
|
|
|
416
428
|
Devise.mappings.each_value do |mapping|
|
|
417
429
|
warden_config.scope_defaults mapping.name, :strategies => mapping.strategies
|
|
430
|
+
|
|
431
|
+
warden_config.serialize_into_session(mapping.name) do |record|
|
|
432
|
+
mapping.to.serialize_into_session(record)
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
warden_config.serialize_from_session(mapping.name) do |key|
|
|
436
|
+
# Previous versions contained an additional entry at the beginning of
|
|
437
|
+
# key with the record's class name.
|
|
438
|
+
args = key[-2, 2]
|
|
439
|
+
mapping.to.serialize_from_session(*args)
|
|
440
|
+
end
|
|
418
441
|
end
|
|
419
442
|
|
|
420
443
|
@@warden_config_block.try :call, Devise.warden_config
|
|
@@ -422,7 +445,7 @@ module Devise
|
|
|
422
445
|
end
|
|
423
446
|
end
|
|
424
447
|
|
|
425
|
-
# Generate a friendly string
|
|
448
|
+
# Generate a friendly string randomly to be used as token.
|
|
426
449
|
def self.friendly_token
|
|
427
450
|
SecureRandom.base64(15).tr('+/=lIO0', 'pqrsxyz')
|
|
428
451
|
end
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module Devise
|
|
3
2
|
module Controllers
|
|
4
3
|
# Those helpers are convenience methods added to ApplicationController.
|
|
@@ -81,6 +80,17 @@ module Devise
|
|
|
81
80
|
is_a?(DeviseController)
|
|
82
81
|
end
|
|
83
82
|
|
|
83
|
+
# Setup a param sanitizer to filter parameters using strong_parameters. See
|
|
84
|
+
# lib/devise/parameter_sanitizer.rb for more info. Override this
|
|
85
|
+
# method in your application controller to use your own parameter sanitizer.
|
|
86
|
+
def devise_parameter_sanitizer
|
|
87
|
+
@devise_parameter_sanitizer ||= if defined?(ActionController::StrongParameters)
|
|
88
|
+
Devise::ParameterSanitizer.new(resource_class, resource_name, params)
|
|
89
|
+
else
|
|
90
|
+
Devise::BaseSanitizer.new(resource_class, resource_name, params)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
84
94
|
# Tell warden that params authentication is allowed for that specific page.
|
|
85
95
|
def allow_params_authentication!
|
|
86
96
|
request.env["devise.allow_params_authentication"] = true
|
|
@@ -163,8 +173,8 @@ module Devise
|
|
|
163
173
|
users.any?
|
|
164
174
|
end
|
|
165
175
|
|
|
166
|
-
# Returns and delete the url stored in the session for
|
|
167
|
-
# for giving redirect backs after sign up:
|
|
176
|
+
# Returns and delete (if it's navigational format) the url stored in the session for
|
|
177
|
+
# the given scope. Useful for giving redirect backs after sign up:
|
|
168
178
|
#
|
|
169
179
|
# Example:
|
|
170
180
|
#
|
|
@@ -172,7 +182,12 @@ module Devise
|
|
|
172
182
|
#
|
|
173
183
|
def stored_location_for(resource_or_scope)
|
|
174
184
|
scope = Devise::Mapping.find_scope!(resource_or_scope)
|
|
175
|
-
|
|
185
|
+
|
|
186
|
+
if is_navigational_format?
|
|
187
|
+
session.delete("#{scope}_return_to")
|
|
188
|
+
else
|
|
189
|
+
session["#{scope}_return_to"]
|
|
190
|
+
end
|
|
176
191
|
end
|
|
177
192
|
|
|
178
193
|
# The scope root url to be used when he's signed in. By default, it first
|
|
@@ -257,12 +272,23 @@ module Devise
|
|
|
257
272
|
# Overwrite Rails' handle unverified request to sign out all scopes,
|
|
258
273
|
# clear run strategies and remove cached variables.
|
|
259
274
|
def handle_unverified_request
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
275
|
+
if sign_in?
|
|
276
|
+
sign_out_all_scopes(false)
|
|
277
|
+
request.env["devise.skip_storage"] = true
|
|
278
|
+
expire_devise_cached_variables!
|
|
279
|
+
end
|
|
280
|
+
|
|
263
281
|
super # call the default behaviour which resets the session
|
|
264
282
|
end
|
|
265
283
|
|
|
284
|
+
def request_format
|
|
285
|
+
@request_format ||= request.format.try(:ref)
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
def is_navigational_format?
|
|
289
|
+
Devise.navigational_formats.include?(request_format)
|
|
290
|
+
end
|
|
291
|
+
|
|
266
292
|
private
|
|
267
293
|
|
|
268
294
|
def expire_devise_cached_variables!
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module Devise
|
|
3
2
|
module Controllers
|
|
4
3
|
# A module that may be optionally included in a controller in order
|
|
@@ -24,14 +23,14 @@ module Devise
|
|
|
24
23
|
def remember_me(resource)
|
|
25
24
|
scope = Devise::Mapping.find_scope!(resource)
|
|
26
25
|
resource.remember_me!(resource.extend_remember_period)
|
|
27
|
-
cookies.signed[
|
|
26
|
+
cookies.signed[remember_key(resource, scope)] = remember_cookie_values(resource)
|
|
28
27
|
end
|
|
29
28
|
|
|
30
29
|
# Forgets the given resource by deleting a cookie
|
|
31
30
|
def forget_me(resource)
|
|
32
31
|
scope = Devise::Mapping.find_scope!(resource)
|
|
33
32
|
resource.forget_me!
|
|
34
|
-
cookies.delete(
|
|
33
|
+
cookies.delete(remember_key(resource, scope), forget_cookie_values(resource))
|
|
35
34
|
end
|
|
36
35
|
|
|
37
36
|
protected
|
|
@@ -48,6 +47,10 @@ module Devise
|
|
|
48
47
|
:expires => resource.remember_expires_at
|
|
49
48
|
)
|
|
50
49
|
end
|
|
50
|
+
|
|
51
|
+
def remember_key(resource, scope)
|
|
52
|
+
resource.rememberable_options.fetch(:key, "remember_#{scope}_token")
|
|
53
|
+
end
|
|
51
54
|
end
|
|
52
55
|
end
|
|
53
56
|
end
|