devise 3.0.0 → 4.8.0

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.
Files changed (242) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +351 -0
  3. data/MIT-LICENSE +2 -1
  4. data/README.md +422 -130
  5. data/app/controllers/devise/confirmations_controller.rb +17 -6
  6. data/app/controllers/devise/omniauth_callbacks_controller.rb +12 -6
  7. data/app/controllers/devise/passwords_controller.rb +23 -8
  8. data/app/controllers/devise/registrations_controller.rb +70 -28
  9. data/app/controllers/devise/sessions_controller.rb +49 -17
  10. data/app/controllers/devise/unlocks_controller.rb +11 -4
  11. data/app/controllers/devise_controller.rb +74 -34
  12. data/app/helpers/devise_helper.rb +23 -18
  13. data/app/mailers/devise/mailer.rb +25 -10
  14. data/app/views/devise/confirmations/new.html.erb +9 -5
  15. data/app/views/devise/mailer/confirmation_instructions.html.erb +1 -1
  16. data/app/views/devise/mailer/email_changed.html.erb +7 -0
  17. data/app/views/devise/mailer/password_change.html.erb +3 -0
  18. data/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
  19. data/app/views/devise/mailer/unlock_instructions.html.erb +1 -1
  20. data/app/views/devise/passwords/edit.html.erb +16 -7
  21. data/app/views/devise/passwords/new.html.erb +9 -5
  22. data/app/views/devise/registrations/edit.html.erb +29 -15
  23. data/app/views/devise/registrations/new.html.erb +20 -9
  24. data/app/views/devise/sessions/new.html.erb +19 -10
  25. data/app/views/devise/shared/_error_messages.html.erb +15 -0
  26. data/app/views/devise/shared/{_links.erb → _links.html.erb} +10 -10
  27. data/app/views/devise/unlocks/new.html.erb +9 -5
  28. data/config/locales/en.yml +26 -20
  29. data/lib/devise/controllers/helpers.rb +122 -125
  30. data/lib/devise/controllers/rememberable.rb +14 -14
  31. data/lib/devise/controllers/scoped_views.rb +3 -1
  32. data/lib/devise/controllers/sign_in_out.rb +121 -0
  33. data/lib/devise/controllers/store_location.rb +76 -0
  34. data/lib/devise/controllers/url_helpers.rb +10 -8
  35. data/lib/devise/delegator.rb +2 -0
  36. data/lib/devise/encryptor.rb +24 -0
  37. data/lib/devise/failure_app.rb +132 -42
  38. data/lib/devise/hooks/activatable.rb +7 -6
  39. data/lib/devise/hooks/csrf_cleaner.rb +9 -0
  40. data/lib/devise/hooks/forgetable.rb +3 -1
  41. data/lib/devise/hooks/lockable.rb +5 -3
  42. data/lib/devise/hooks/proxy.rb +23 -0
  43. data/lib/devise/hooks/rememberable.rb +7 -4
  44. data/lib/devise/hooks/timeoutable.rb +18 -8
  45. data/lib/devise/hooks/trackable.rb +3 -1
  46. data/lib/devise/mailers/helpers.rb +15 -18
  47. data/lib/devise/mapping.rb +9 -3
  48. data/lib/devise/models/authenticatable.rb +102 -80
  49. data/lib/devise/models/confirmable.rb +154 -72
  50. data/lib/devise/models/database_authenticatable.rb +125 -25
  51. data/lib/devise/models/lockable.rb +50 -29
  52. data/lib/devise/models/omniauthable.rb +3 -1
  53. data/lib/devise/models/recoverable.rb +72 -50
  54. data/lib/devise/models/registerable.rb +4 -0
  55. data/lib/devise/models/rememberable.rb +65 -32
  56. data/lib/devise/models/timeoutable.rb +4 -8
  57. data/lib/devise/models/trackable.rb +20 -4
  58. data/lib/devise/models/validatable.rb +16 -9
  59. data/lib/devise/models.rb +6 -13
  60. data/lib/devise/modules.rb +12 -11
  61. data/lib/devise/omniauth/config.rb +2 -0
  62. data/lib/devise/omniauth/url_helpers.rb +14 -5
  63. data/lib/devise/omniauth.rb +4 -5
  64. data/lib/devise/orm/active_record.rb +5 -1
  65. data/lib/devise/orm/mongoid.rb +6 -2
  66. data/lib/devise/parameter_filter.rb +4 -0
  67. data/lib/devise/parameter_sanitizer.rb +144 -34
  68. data/lib/devise/rails/deprecated_constant_accessor.rb +39 -0
  69. data/lib/devise/rails/routes.rb +191 -127
  70. data/lib/devise/rails/warden_compat.rb +2 -1
  71. data/lib/devise/rails.rb +13 -20
  72. data/lib/devise/secret_key_finder.rb +27 -0
  73. data/lib/devise/strategies/authenticatable.rb +21 -22
  74. data/lib/devise/strategies/base.rb +3 -1
  75. data/lib/devise/strategies/database_authenticatable.rb +15 -4
  76. data/lib/devise/strategies/rememberable.rb +15 -3
  77. data/lib/devise/test/controller_helpers.rb +167 -0
  78. data/lib/devise/test/integration_helpers.rb +63 -0
  79. data/lib/devise/test_helpers.rb +7 -123
  80. data/lib/devise/time_inflector.rb +4 -2
  81. data/lib/devise/token_generator.rb +32 -0
  82. data/lib/devise/version.rb +3 -1
  83. data/lib/devise.rb +124 -78
  84. data/lib/generators/active_record/devise_generator.rb +64 -15
  85. data/lib/generators/active_record/templates/migration.rb +9 -8
  86. data/lib/generators/active_record/templates/migration_existing.rb +9 -8
  87. data/lib/generators/devise/controllers_generator.rb +46 -0
  88. data/lib/generators/devise/devise_generator.rb +10 -6
  89. data/lib/generators/devise/install_generator.rb +19 -1
  90. data/lib/generators/devise/orm_helpers.rb +17 -9
  91. data/lib/generators/devise/views_generator.rb +51 -28
  92. data/lib/generators/mongoid/devise_generator.rb +24 -24
  93. data/lib/generators/templates/README +13 -12
  94. data/lib/generators/templates/controllers/README +14 -0
  95. data/lib/generators/templates/controllers/confirmations_controller.rb +30 -0
  96. data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +30 -0
  97. data/lib/generators/templates/controllers/passwords_controller.rb +34 -0
  98. data/lib/generators/templates/controllers/registrations_controller.rb +62 -0
  99. data/lib/generators/templates/controllers/sessions_controller.rb +27 -0
  100. data/lib/generators/templates/controllers/unlocks_controller.rb +30 -0
  101. data/lib/generators/templates/devise.rb +118 -53
  102. data/lib/generators/templates/markerb/confirmation_instructions.markerb +1 -1
  103. data/lib/generators/templates/markerb/email_changed.markerb +7 -0
  104. data/lib/generators/templates/markerb/password_change.markerb +3 -0
  105. data/lib/generators/templates/markerb/reset_password_instructions.markerb +1 -1
  106. data/lib/generators/templates/markerb/unlock_instructions.markerb +1 -1
  107. data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +6 -2
  108. data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +12 -4
  109. data/lib/generators/templates/simple_form_for/passwords/new.html.erb +5 -2
  110. data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +14 -6
  111. data/lib/generators/templates/simple_form_for/registrations/new.html.erb +12 -4
  112. data/lib/generators/templates/simple_form_for/sessions/new.html.erb +11 -6
  113. data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +5 -2
  114. metadata +73 -294
  115. data/.gitignore +0 -10
  116. data/.travis.yml +0 -20
  117. data/.yardopts +0 -9
  118. data/CHANGELOG.rdoc +0 -941
  119. data/CONTRIBUTING.md +0 -14
  120. data/Gemfile +0 -31
  121. data/Gemfile.lock +0 -159
  122. data/Rakefile +0 -35
  123. data/app/views/devise/_links.erb +0 -3
  124. data/devise.gemspec +0 -26
  125. data/devise.png +0 -0
  126. data/gemfiles/Gemfile.rails-3.2.x +0 -31
  127. data/gemfiles/Gemfile.rails-3.2.x.lock +0 -156
  128. data/lib/devise/models/token_authenticatable.rb +0 -89
  129. data/lib/devise/strategies/token_authenticatable.rb +0 -91
  130. data/test/controllers/custom_strategy_test.rb +0 -62
  131. data/test/controllers/helpers_test.rb +0 -253
  132. data/test/controllers/internal_helpers_test.rb +0 -120
  133. data/test/controllers/passwords_controller_test.rb +0 -32
  134. data/test/controllers/sessions_controller_test.rb +0 -99
  135. data/test/controllers/url_helpers_test.rb +0 -59
  136. data/test/delegator_test.rb +0 -19
  137. data/test/devise_test.rb +0 -83
  138. data/test/failure_app_test.rb +0 -221
  139. data/test/generators/active_record_generator_test.rb +0 -73
  140. data/test/generators/devise_generator_test.rb +0 -39
  141. data/test/generators/install_generator_test.rb +0 -13
  142. data/test/generators/mongoid_generator_test.rb +0 -23
  143. data/test/generators/views_generator_test.rb +0 -67
  144. data/test/helpers/devise_helper_test.rb +0 -51
  145. data/test/integration/authenticatable_test.rb +0 -699
  146. data/test/integration/confirmable_test.rb +0 -299
  147. data/test/integration/database_authenticatable_test.rb +0 -84
  148. data/test/integration/http_authenticatable_test.rb +0 -115
  149. data/test/integration/lockable_test.rb +0 -242
  150. data/test/integration/omniauthable_test.rb +0 -133
  151. data/test/integration/recoverable_test.rb +0 -335
  152. data/test/integration/registerable_test.rb +0 -349
  153. data/test/integration/rememberable_test.rb +0 -165
  154. data/test/integration/timeoutable_test.rb +0 -150
  155. data/test/integration/token_authenticatable_test.rb +0 -205
  156. data/test/integration/trackable_test.rb +0 -92
  157. data/test/mailers/confirmation_instructions_test.rb +0 -111
  158. data/test/mailers/reset_password_instructions_test.rb +0 -92
  159. data/test/mailers/unlock_instructions_test.rb +0 -87
  160. data/test/mapping_test.rb +0 -127
  161. data/test/models/authenticatable_test.rb +0 -13
  162. data/test/models/confirmable_test.rb +0 -452
  163. data/test/models/database_authenticatable_test.rb +0 -226
  164. data/test/models/lockable_test.rb +0 -282
  165. data/test/models/omniauthable_test.rb +0 -7
  166. data/test/models/recoverable_test.rb +0 -222
  167. data/test/models/registerable_test.rb +0 -7
  168. data/test/models/rememberable_test.rb +0 -175
  169. data/test/models/serializable_test.rb +0 -49
  170. data/test/models/timeoutable_test.rb +0 -46
  171. data/test/models/token_authenticatable_test.rb +0 -55
  172. data/test/models/trackable_test.rb +0 -13
  173. data/test/models/validatable_test.rb +0 -127
  174. data/test/models_test.rb +0 -163
  175. data/test/omniauth/config_test.rb +0 -57
  176. data/test/omniauth/url_helpers_test.rb +0 -54
  177. data/test/orm/active_record.rb +0 -10
  178. data/test/orm/mongoid.rb +0 -13
  179. data/test/parameter_sanitizer_test.rb +0 -58
  180. data/test/rails_app/Rakefile +0 -6
  181. data/test/rails_app/app/active_record/admin.rb +0 -6
  182. data/test/rails_app/app/active_record/shim.rb +0 -2
  183. data/test/rails_app/app/active_record/user.rb +0 -6
  184. data/test/rails_app/app/controllers/admins/sessions_controller.rb +0 -6
  185. data/test/rails_app/app/controllers/admins_controller.rb +0 -11
  186. data/test/rails_app/app/controllers/application_controller.rb +0 -9
  187. data/test/rails_app/app/controllers/home_controller.rb +0 -25
  188. data/test/rails_app/app/controllers/publisher/registrations_controller.rb +0 -2
  189. data/test/rails_app/app/controllers/publisher/sessions_controller.rb +0 -2
  190. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +0 -14
  191. data/test/rails_app/app/controllers/users_controller.rb +0 -31
  192. data/test/rails_app/app/helpers/application_helper.rb +0 -3
  193. data/test/rails_app/app/mailers/users/mailer.rb +0 -12
  194. data/test/rails_app/app/mongoid/admin.rb +0 -29
  195. data/test/rails_app/app/mongoid/shim.rb +0 -23
  196. data/test/rails_app/app/mongoid/user.rb +0 -42
  197. data/test/rails_app/app/views/admins/index.html.erb +0 -1
  198. data/test/rails_app/app/views/admins/sessions/new.html.erb +0 -2
  199. data/test/rails_app/app/views/home/admin_dashboard.html.erb +0 -1
  200. data/test/rails_app/app/views/home/index.html.erb +0 -1
  201. data/test/rails_app/app/views/home/join.html.erb +0 -1
  202. data/test/rails_app/app/views/home/private.html.erb +0 -1
  203. data/test/rails_app/app/views/home/user_dashboard.html.erb +0 -1
  204. data/test/rails_app/app/views/layouts/application.html.erb +0 -24
  205. data/test/rails_app/app/views/users/edit_form.html.erb +0 -1
  206. data/test/rails_app/app/views/users/index.html.erb +0 -1
  207. data/test/rails_app/app/views/users/mailer/confirmation_instructions.erb +0 -1
  208. data/test/rails_app/app/views/users/sessions/new.html.erb +0 -1
  209. data/test/rails_app/bin/bundle +0 -3
  210. data/test/rails_app/bin/rails +0 -4
  211. data/test/rails_app/bin/rake +0 -4
  212. data/test/rails_app/config/application.rb +0 -40
  213. data/test/rails_app/config/boot.rb +0 -8
  214. data/test/rails_app/config/database.yml +0 -18
  215. data/test/rails_app/config/environment.rb +0 -5
  216. data/test/rails_app/config/environments/development.rb +0 -34
  217. data/test/rails_app/config/environments/production.rb +0 -84
  218. data/test/rails_app/config/environments/test.rb +0 -36
  219. data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -7
  220. data/test/rails_app/config/initializers/devise.rb +0 -178
  221. data/test/rails_app/config/initializers/inflections.rb +0 -2
  222. data/test/rails_app/config/initializers/secret_token.rb +0 -8
  223. data/test/rails_app/config/initializers/session_store.rb +0 -1
  224. data/test/rails_app/config/routes.rb +0 -104
  225. data/test/rails_app/config.ru +0 -4
  226. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +0 -74
  227. data/test/rails_app/db/schema.rb +0 -52
  228. data/test/rails_app/lib/shared_admin.rb +0 -14
  229. data/test/rails_app/lib/shared_user.rb +0 -25
  230. data/test/rails_app/public/404.html +0 -26
  231. data/test/rails_app/public/422.html +0 -26
  232. data/test/rails_app/public/500.html +0 -26
  233. data/test/rails_app/public/favicon.ico +0 -0
  234. data/test/routes_test.rb +0 -250
  235. data/test/support/assertions.rb +0 -40
  236. data/test/support/helpers.rb +0 -91
  237. data/test/support/integration.rb +0 -92
  238. data/test/support/locale/en.yml +0 -4
  239. data/test/support/webrat/integrations/rails.rb +0 -24
  240. data/test/test_helper.rb +0 -34
  241. data/test/test_helpers_test.rb +0 -151
  242. data/test/test_models.rb +0 -26
data/CONTRIBUTING.md DELETED
@@ -1,14 +0,0 @@
1
- ### Please read before contributing
2
-
3
- 1) Do not post questions in the issues tracker. If you have any questions about Devise, search the [Wiki](https://github.com/plataformatec/devise/wiki) or use the [Mailing List](https://groups.google.com/group/plataformatec-devise) or [Stack Overflow](http://stackoverflow.com/questions/tagged/devise).
4
-
5
- 2) If you find a security bug, **DO NOT** submit an issue here. Please send an e-mail to [developers@plataformatec.com.br](mailto:developers@plataformatec.com.br) instead.
6
-
7
- 3) Do a small search on the issues tracker before submitting your issue to see if it was already reported / fixed.
8
-
9
- 4) When reporting an issue, include Rails, Devise and Warden versions. If you are getting exceptions, please include the full backtrace.
10
-
11
- That's it! The more information you give, the easier it becomes for us to track it down and fix it.
12
- Ideally, you should provide an application that reproduces the error or a test case to Devise's suite.
13
-
14
- Thanks!
data/Gemfile DELETED
@@ -1,31 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem "rails", "~> 4.0.0"
6
- gem "omniauth", "~> 1.0.0"
7
- gem "omniauth-oauth2", "~> 1.0.0"
8
- gem "rdoc"
9
-
10
- group :test do
11
- gem "omniauth-facebook"
12
- gem "omniauth-openid", "~> 1.0.1"
13
- gem "webrat", "0.7.3", :require => false
14
- gem "mocha", "~> 0.13.1", :require => false
15
- end
16
-
17
- platforms :jruby do
18
- gem "activerecord-jdbc-adapter"
19
- gem "activerecord-jdbcsqlite3-adapter"
20
- gem "jruby-openssl"
21
- end
22
-
23
- platforms :ruby do
24
- gem "sqlite3"
25
- end
26
-
27
- platforms :mri_19, :mri_20 do
28
- group :mongoid do
29
- gem "mongoid", github: "mongoid/mongoid", branch: "master"
30
- end
31
- end
data/Gemfile.lock DELETED
@@ -1,159 +0,0 @@
1
- GIT
2
- remote: git://github.com/mongoid/mongoid.git
3
- revision: fe7f43430580860db6d1d89cea27eda24ab60ab1
4
- branch: master
5
- specs:
6
- mongoid (4.0.0)
7
- activemodel (~> 4.0.0.rc1)
8
- moped (~> 1.4.2)
9
- origin (~> 1.0)
10
- tzinfo (~> 0.3.22)
11
-
12
- PATH
13
- remote: .
14
- specs:
15
- devise (3.0.0.rc)
16
- bcrypt-ruby (~> 3.0)
17
- orm_adapter (~> 0.1)
18
- railties (>= 3.2.6, < 5)
19
- warden (~> 1.2.3)
20
-
21
- GEM
22
- remote: https://rubygems.org/
23
- specs:
24
- actionmailer (4.0.0)
25
- actionpack (= 4.0.0)
26
- mail (~> 2.5.3)
27
- actionpack (4.0.0)
28
- activesupport (= 4.0.0)
29
- builder (~> 3.1.0)
30
- erubis (~> 2.7.0)
31
- rack (~> 1.5.2)
32
- rack-test (~> 0.6.2)
33
- activemodel (4.0.0)
34
- activesupport (= 4.0.0)
35
- builder (~> 3.1.0)
36
- activerecord (4.0.0)
37
- activemodel (= 4.0.0)
38
- activerecord-deprecated_finders (~> 1.0.2)
39
- activesupport (= 4.0.0)
40
- arel (~> 4.0.0)
41
- activerecord-deprecated_finders (1.0.3)
42
- activesupport (4.0.0)
43
- i18n (~> 0.6, >= 0.6.4)
44
- minitest (~> 4.2)
45
- multi_json (~> 1.3)
46
- thread_safe (~> 0.1)
47
- tzinfo (~> 0.3.37)
48
- arel (4.0.0)
49
- atomic (1.1.10)
50
- bcrypt-ruby (3.1.1)
51
- builder (3.1.4)
52
- erubis (2.7.0)
53
- faraday (0.8.7)
54
- multipart-post (~> 1.1)
55
- hashie (1.2.0)
56
- hike (1.2.3)
57
- httpauth (0.2.0)
58
- i18n (0.6.4)
59
- json (1.7.7)
60
- jwt (0.1.8)
61
- multi_json (>= 1.5)
62
- mail (2.5.4)
63
- mime-types (~> 1.16)
64
- treetop (~> 1.4.8)
65
- metaclass (0.0.1)
66
- mime-types (1.23)
67
- minitest (4.7.5)
68
- mocha (0.13.3)
69
- metaclass (~> 0.0.1)
70
- moped (1.4.5)
71
- multi_json (1.7.7)
72
- multipart-post (1.2.0)
73
- nokogiri (1.5.9)
74
- oauth2 (0.8.1)
75
- faraday (~> 0.8)
76
- httpauth (~> 0.1)
77
- jwt (~> 0.1.4)
78
- multi_json (~> 1.0)
79
- rack (~> 1.2)
80
- omniauth (1.0.3)
81
- hashie (~> 1.2)
82
- rack
83
- omniauth-facebook (1.4.0)
84
- omniauth-oauth2 (~> 1.0.2)
85
- omniauth-oauth2 (1.0.3)
86
- oauth2 (~> 0.8.0)
87
- omniauth (~> 1.0)
88
- omniauth-openid (1.0.1)
89
- omniauth (~> 1.0)
90
- rack-openid (~> 1.3.1)
91
- origin (1.1.0)
92
- orm_adapter (0.4.0)
93
- polyglot (0.3.3)
94
- rack (1.5.2)
95
- rack-openid (1.3.1)
96
- rack (>= 1.1.0)
97
- ruby-openid (>= 2.1.8)
98
- rack-test (0.6.2)
99
- rack (>= 1.0)
100
- rails (4.0.0)
101
- actionmailer (= 4.0.0)
102
- actionpack (= 4.0.0)
103
- activerecord (= 4.0.0)
104
- activesupport (= 4.0.0)
105
- bundler (>= 1.3.0, < 2.0)
106
- railties (= 4.0.0)
107
- sprockets-rails (~> 2.0.0)
108
- railties (4.0.0)
109
- actionpack (= 4.0.0)
110
- activesupport (= 4.0.0)
111
- rake (>= 0.8.7)
112
- thor (>= 0.18.1, < 2.0)
113
- rake (10.1.0)
114
- rdoc (4.0.1)
115
- json (~> 1.4)
116
- ruby-openid (2.2.3)
117
- sprockets (2.10.0)
118
- hike (~> 1.2)
119
- multi_json (~> 1.0)
120
- rack (~> 1.0)
121
- tilt (~> 1.1, != 1.3.0)
122
- sprockets-rails (2.0.0)
123
- actionpack (>= 3.0)
124
- activesupport (>= 3.0)
125
- sprockets (~> 2.8)
126
- sqlite3 (1.3.7)
127
- thor (0.18.1)
128
- thread_safe (0.1.0)
129
- atomic
130
- tilt (1.4.1)
131
- treetop (1.4.14)
132
- polyglot
133
- polyglot (>= 0.3.1)
134
- tzinfo (0.3.37)
135
- warden (1.2.3)
136
- rack (>= 1.0)
137
- webrat (0.7.3)
138
- nokogiri (>= 1.2.0)
139
- rack (>= 1.0)
140
- rack-test (>= 0.5.3)
141
-
142
- PLATFORMS
143
- ruby
144
-
145
- DEPENDENCIES
146
- activerecord-jdbc-adapter
147
- activerecord-jdbcsqlite3-adapter
148
- devise!
149
- jruby-openssl
150
- mocha (~> 0.13.1)
151
- mongoid!
152
- omniauth (~> 1.0.0)
153
- omniauth-facebook
154
- omniauth-oauth2 (~> 1.0.0)
155
- omniauth-openid (~> 1.0.1)
156
- rails (~> 4.0.0)
157
- rdoc
158
- sqlite3
159
- webrat (= 0.7.3)
data/Rakefile DELETED
@@ -1,35 +0,0 @@
1
- # encoding: UTF-8
2
- require "bundler/gem_tasks"
3
- require 'rake/testtask'
4
- require 'rdoc/task'
5
-
6
- desc 'Default: run tests for all ORMs.'
7
- task :default => :test
8
-
9
- desc 'Run Devise tests for all ORMs.'
10
- task :pre_commit do
11
- Dir[File.join(File.dirname(__FILE__), 'test', 'orm', '*.rb')].each do |file|
12
- orm = File.basename(file).split(".").first
13
- # "Some day, my son, rake's inner wisdom will reveal itself. Until then,
14
- # take this `system` -- may its brute force protect you well."
15
- exit 1 unless system "rake test DEVISE_ORM=#{orm}"
16
- end
17
- end
18
-
19
- desc 'Run Devise unit tests.'
20
- Rake::TestTask.new(:test) do |t|
21
- t.libs << 'lib'
22
- t.libs << 'test'
23
- t.pattern = 'test/**/*_test.rb'
24
- t.verbose = true
25
- t.warning = false
26
- end
27
-
28
- desc 'Generate documentation for Devise.'
29
- Rake::RDocTask.new(:rdoc) do |rdoc|
30
- rdoc.rdoc_dir = 'rdoc'
31
- rdoc.title = 'Devise'
32
- rdoc.options << '--line-numbers' << '--inline-source'
33
- rdoc.rdoc_files.include('README.md')
34
- rdoc.rdoc_files.include('lib/**/*.rb')
35
- end
@@ -1,3 +0,0 @@
1
- <% ActiveSupport::Deprecation.warn "Rendering partials devise/_links.erb is deprecated" \
2
- "please use devise/shared/_links.erb instead."%>
3
- <%= render "shared/links" %>
data/devise.gemspec DELETED
@@ -1,26 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "devise/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "devise"
7
- s.version = Devise::VERSION.dup
8
- s.platform = Gem::Platform::RUBY
9
- s.licenses = ["MIT"]
10
- s.summary = "Flexible authentication solution for Rails with Warden"
11
- s.email = "contact@plataformatec.com.br"
12
- s.homepage = "http://github.com/plataformatec/devise"
13
- s.description = "Flexible authentication solution for Rails with Warden"
14
- s.authors = ['José Valim', 'Carlos Antônio']
15
-
16
- s.rubyforge_project = "devise"
17
-
18
- s.files = `git ls-files`.split("\n")
19
- s.test_files = `git ls-files -- test/*`.split("\n")
20
- s.require_paths = ["lib"]
21
-
22
- s.add_dependency("warden", "~> 1.2.3")
23
- s.add_dependency("orm_adapter", "~> 0.1")
24
- s.add_dependency("bcrypt-ruby", "~> 3.0")
25
- s.add_dependency("railties", ">= 3.2.6", "< 5")
26
- end
data/devise.png DELETED
Binary file
@@ -1,31 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec :path => '..'
4
-
5
- gem "rails", "~> 3.2.6"
6
- gem "omniauth", "~> 1.0.0"
7
- gem "omniauth-oauth2", "~> 1.0.0"
8
- gem "rdoc"
9
-
10
- group :test do
11
- gem "omniauth-facebook"
12
- gem "omniauth-openid", "~> 1.0.1"
13
- gem "webrat", "0.7.3", :require => false
14
- gem "mocha", "~> 0.13.1", :require => false
15
- end
16
-
17
- platforms :jruby do
18
- gem "activerecord-jdbc-adapter"
19
- gem "activerecord-jdbcsqlite3-adapter"
20
- gem "jruby-openssl"
21
- end
22
-
23
- platforms :ruby do
24
- gem "sqlite3"
25
- end
26
-
27
- platforms :mri_19, :mri_20 do
28
- group :mongoid do
29
- gem "mongoid", "~> 3.0"
30
- end
31
- end
@@ -1,156 +0,0 @@
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)
@@ -1,89 +0,0 @@
1
- require 'devise/strategies/token_authenticatable'
2
-
3
- module Devise
4
- module Models
5
- # The TokenAuthenticatable module is responsible for generating an authentication token and
6
- # validating the authenticity of the same while signing in.
7
- #
8
- # This module only provides a few helpers to help you manage the token, but it is up to you
9
- # to choose how to use it. For example, if you want to have a new token every time the user
10
- # saves his account, you can do the following:
11
- #
12
- # before_save :reset_authentication_token
13
- #
14
- # On the other hand, if you want to generate token unless one exists, you should use instead:
15
- #
16
- # before_save :ensure_authentication_token
17
- #
18
- # If you want to delete the token after it is used, you can do so in the
19
- # after_token_authentication callback.
20
- #
21
- # == APIs
22
- #
23
- # If you are using token authentication with APIs and using trackable. Every
24
- # request will be considered as a new sign in (since there is no session in
25
- # APIs). You can disable this by creating a before filter as follow:
26
- #
27
- # before_filter :skip_trackable
28
- #
29
- # def skip_trackable
30
- # request.env['devise.skip_trackable'] = true
31
- # end
32
- #
33
- # == Options
34
- #
35
- # TokenAuthenticatable adds the following options to devise_for:
36
- #
37
- # * +token_authentication_key+: Defines name of the authentication token params key. E.g. /users/sign_in?some_key=...
38
- #
39
- module TokenAuthenticatable
40
- extend ActiveSupport::Concern
41
-
42
- def self.required_fields(klass)
43
- [:authentication_token]
44
- end
45
-
46
- # Generate new authentication token (a.k.a. "single access token").
47
- def reset_authentication_token
48
- self.authentication_token = self.class.authentication_token
49
- end
50
-
51
- # Generate new authentication token and save the record.
52
- def reset_authentication_token!
53
- reset_authentication_token
54
- save(:validate => false)
55
- end
56
-
57
- # Generate authentication token unless already exists.
58
- def ensure_authentication_token
59
- reset_authentication_token if authentication_token.blank?
60
- end
61
-
62
- # Generate authentication token unless already exists and save the record.
63
- def ensure_authentication_token!
64
- reset_authentication_token! if authentication_token.blank?
65
- end
66
-
67
- # Hook called after token authentication.
68
- def after_token_authentication
69
- end
70
-
71
- def expire_auth_token_on_timeout
72
- self.class.expire_auth_token_on_timeout
73
- end
74
-
75
- module ClassMethods
76
- def find_for_token_authentication(conditions)
77
- find_for_authentication(:authentication_token => conditions[token_authentication_key])
78
- end
79
-
80
- # Generate a token checking if one does not already exist in the database.
81
- def authentication_token
82
- generate_token(:authentication_token)
83
- end
84
-
85
- Devise::Models.config(self, :token_authentication_key, :expire_auth_token_on_timeout)
86
- end
87
- end
88
- end
89
- end
@@ -1,91 +0,0 @@
1
- require 'devise/strategies/base'
2
-
3
- module Devise
4
- module Strategies
5
- # Strategy for signing in a user, based on a authenticatable token. This works for both params
6
- # and http. For the former, all you need to do is to pass the params in the URL:
7
- #
8
- # http://myapp.example.com/?user_token=SECRET
9
- #
10
- # For headers, you can use basic authentication passing the token as username and
11
- # blank password. Since some clients may require a password, you can pass "X" as
12
- # password and it will simply be ignored.
13
- #
14
- # You may also pass the token using the Token authentication mechanism provided
15
- # by Rails: http://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Token.html
16
- # The token options are stored in request.env['devise.token_options']
17
- class TokenAuthenticatable < Authenticatable
18
- def store?
19
- super && !mapping.to.skip_session_storage.include?(:token_auth)
20
- end
21
-
22
- def valid?
23
- super || valid_for_token_auth?
24
- end
25
-
26
- def authenticate!
27
- resource = mapping.to.find_for_token_authentication(authentication_hash)
28
- return fail(:invalid_token) unless resource
29
-
30
- if validate(resource)
31
- resource.after_token_authentication
32
- success!(resource)
33
- end
34
- end
35
-
36
- private
37
-
38
- # Token Authenticatable can be authenticated with params in any controller and any verb.
39
- def valid_params_request?
40
- true
41
- end
42
-
43
- # Do not use remember_me behavior with token.
44
- def remember_me?
45
- false
46
- end
47
-
48
- # Check if the model accepts this strategy as token authenticatable.
49
- def token_authenticatable?
50
- mapping.to.http_authenticatable?(:token_options)
51
- end
52
-
53
- # Check if this is strategy is valid for token authentication by:
54
- #
55
- # * Validating if the model allows http token authentication;
56
- # * If the http auth token exists;
57
- # * If all authentication keys are present;
58
- #
59
- def valid_for_token_auth?
60
- token_authenticatable? && auth_token.present? && with_authentication_hash(:token_auth, token_auth_hash)
61
- end
62
-
63
- # Extract the auth token from the request
64
- def auth_token
65
- @auth_token ||= ActionController::HttpAuthentication::Token.token_and_options(request)
66
- end
67
-
68
- # Extract a hash with attributes:values from the auth_token
69
- def token_auth_hash
70
- request.env['devise.token_options'] = auth_token.last
71
- { authentication_keys.first => auth_token.first }
72
- end
73
-
74
- # Try both scoped and non scoped keys
75
- def params_auth_hash
76
- if params[scope].kind_of?(Hash) && params[scope].has_key?(authentication_keys.first)
77
- params[scope]
78
- else
79
- params
80
- end
81
- end
82
-
83
- # Overwrite authentication keys to use token_authentication_key.
84
- def authentication_keys
85
- @authentication_keys ||= [mapping.to.token_authentication_key]
86
- end
87
- end
88
- end
89
- end
90
-
91
- Warden::Strategies.add(:token_authenticatable, Devise::Strategies::TokenAuthenticatable)