sorcery 0.4.1 → 0.5.2

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 (142) hide show
  1. data/Gemfile +5 -2
  2. data/Gemfile.lock +12 -0
  3. data/README.rdoc +12 -7
  4. data/VERSION +1 -1
  5. data/lib/sorcery/controller/adapters/sinatra.rb +35 -28
  6. data/lib/sorcery/controller/submodules/brute_force_protection.rb +1 -1
  7. data/lib/sorcery/controller/submodules/http_basic_auth.rb +1 -1
  8. data/lib/sorcery/crypto_providers/bcrypt.rb +2 -4
  9. data/lib/sorcery/crypto_providers/common.rb +2 -2
  10. data/lib/sorcery/engine.rb +0 -11
  11. data/lib/sorcery/initializers/initializer.rb +5 -1
  12. data/lib/sorcery/model/adapters/active_record.rb +28 -0
  13. data/lib/sorcery/model/adapters/mongoid.rb +64 -0
  14. data/lib/sorcery/model/submodules/activity_logging.rb +12 -3
  15. data/lib/sorcery/model/submodules/brute_force_protection.rb +6 -1
  16. data/lib/sorcery/model/submodules/external.rb +1 -0
  17. data/lib/sorcery/model/submodules/remember_me.rb +15 -1
  18. data/lib/sorcery/model/submodules/reset_password.rb +14 -5
  19. data/lib/sorcery/model/submodules/user_activation.rb +11 -1
  20. data/lib/sorcery/model/temporary_token.rb +1 -1
  21. data/lib/sorcery/model.rb +37 -10
  22. data/lib/sorcery/sinatra.rb +0 -1
  23. data/lib/sorcery/test_helpers/internal/rails.rb +53 -0
  24. data/lib/sorcery/test_helpers/internal/sinatra.rb +74 -0
  25. data/lib/sorcery/test_helpers/internal/sinatra_modular.rb +74 -0
  26. data/lib/sorcery/test_helpers/internal.rb +56 -0
  27. data/lib/sorcery/test_helpers/rails.rb +5 -43
  28. data/lib/sorcery/test_helpers/sinatra.rb +62 -102
  29. data/lib/sorcery/test_helpers.rb +0 -47
  30. data/lib/sorcery.rb +27 -1
  31. data/sorcery.gemspec +162 -10
  32. data/spec/Gemfile +1 -1
  33. data/spec/Gemfile.lock +9 -4
  34. data/spec/rails3/Gemfile +1 -1
  35. data/spec/rails3/Gemfile.lock +6 -9
  36. data/spec/rails3/spec/controller_activity_logging_spec.rb +2 -4
  37. data/spec/rails3/spec/controller_oauth_spec.rb +3 -3
  38. data/spec/rails3/spec/controller_session_timeout_spec.rb +20 -19
  39. data/spec/rails3/spec/controller_spec.rb +6 -16
  40. data/spec/rails3/spec/spec_helper.rb +2 -2
  41. data/spec/rails3/spec/user_activation_spec.rb +2 -12
  42. data/spec/rails3/spec/user_brute_force_protection_spec.rb +2 -30
  43. data/spec/rails3/spec/user_remember_me_spec.rb +3 -11
  44. data/spec/rails3/spec/user_reset_password_spec.rb +15 -16
  45. data/spec/rails3/spec/user_spec.rb +18 -13
  46. data/spec/rails3_mongoid/.gitignore +4 -0
  47. data/spec/rails3_mongoid/.rspec +1 -0
  48. data/spec/rails3_mongoid/Gemfile +14 -0
  49. data/spec/rails3_mongoid/Gemfile.lock +143 -0
  50. data/spec/rails3_mongoid/Rakefile +11 -0
  51. data/spec/rails3_mongoid/app/controllers/application_controller.rb +108 -0
  52. data/spec/rails3_mongoid/app/helpers/application_helper.rb +2 -0
  53. data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +25 -0
  54. data/spec/rails3_mongoid/app/models/authentication.rb +7 -0
  55. data/spec/rails3_mongoid/app/models/user.rb +5 -0
  56. data/spec/rails3_mongoid/app/views/layouts/application.html.erb +14 -0
  57. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +17 -0
  58. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +9 -0
  59. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +17 -0
  60. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +9 -0
  61. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +16 -0
  62. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +8 -0
  63. data/spec/rails3_mongoid/config/application.rb +51 -0
  64. data/spec/rails3_mongoid/config/boot.rb +13 -0
  65. data/spec/rails3_mongoid/config/environment.rb +5 -0
  66. data/spec/rails3_mongoid/config/environments/development.rb +26 -0
  67. data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
  68. data/spec/rails3_mongoid/config/environments/production.rb +49 -0
  69. data/spec/rails3_mongoid/config/environments/test.rb +35 -0
  70. data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +7 -0
  71. data/spec/rails3_mongoid/config/initializers/inflections.rb +10 -0
  72. data/spec/rails3_mongoid/config/initializers/mime_types.rb +5 -0
  73. data/spec/rails3_mongoid/config/initializers/secret_token.rb +7 -0
  74. data/spec/rails3_mongoid/config/initializers/session_store.rb +8 -0
  75. data/spec/rails3_mongoid/config/locales/en.yml +5 -0
  76. data/spec/rails3_mongoid/config/mongoid.yml +7 -0
  77. data/spec/rails3_mongoid/config/routes.rb +59 -0
  78. data/spec/rails3_mongoid/config.ru +4 -0
  79. data/spec/rails3_mongoid/db/schema.rb +23 -0
  80. data/spec/rails3_mongoid/db/seeds.rb +7 -0
  81. data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
  82. data/spec/rails3_mongoid/public/404.html +26 -0
  83. data/spec/rails3_mongoid/public/422.html +26 -0
  84. data/spec/rails3_mongoid/public/500.html +26 -0
  85. data/spec/rails3_mongoid/public/favicon.ico +0 -0
  86. data/spec/rails3_mongoid/public/images/rails.png +0 -0
  87. data/spec/rails3_mongoid/public/javascripts/application.js +2 -0
  88. data/spec/rails3_mongoid/public/javascripts/controls.js +965 -0
  89. data/spec/rails3_mongoid/public/javascripts/dragdrop.js +974 -0
  90. data/spec/rails3_mongoid/public/javascripts/effects.js +1123 -0
  91. data/spec/rails3_mongoid/public/javascripts/prototype.js +6001 -0
  92. data/spec/rails3_mongoid/public/javascripts/rails.js +175 -0
  93. data/spec/rails3_mongoid/public/robots.txt +5 -0
  94. data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
  95. data/spec/rails3_mongoid/script/rails +6 -0
  96. data/spec/rails3_mongoid/spec/spec.opts +2 -0
  97. data/spec/rails3_mongoid/spec/spec_helper.orig.rb +27 -0
  98. data/spec/rails3_mongoid/spec/spec_helper.rb +55 -0
  99. data/spec/rails3_mongoid/spec/user_activation_spec.rb +178 -0
  100. data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +31 -0
  101. data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +41 -0
  102. data/spec/rails3_mongoid/spec/user_oauth_spec.rb +34 -0
  103. data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +51 -0
  104. data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +182 -0
  105. data/spec/rails3_mongoid/spec/user_spec.rb +319 -0
  106. data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
  107. data/spec/sinatra/Gemfile +4 -1
  108. data/spec/sinatra/Gemfile.lock +22 -39
  109. data/spec/sinatra/Rakefile +1 -1
  110. data/spec/sinatra/filters.rb +20 -14
  111. data/spec/sinatra/modular.rb +157 -0
  112. data/spec/sinatra/spec/controller_session_timeout_spec.rb +23 -22
  113. data/spec/sinatra/spec/spec_helper.rb +2 -2
  114. data/spec/sinatra_modular/Gemfile +15 -0
  115. data/spec/sinatra_modular/Gemfile.lock +117 -0
  116. data/spec/sinatra_modular/Rakefile +11 -0
  117. data/spec/sinatra_modular/authentication.rb +3 -0
  118. data/spec/sinatra_modular/db/migrate/activation/20101224223622_add_activation_to_users.rb +17 -0
  119. data/spec/sinatra_modular/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +17 -0
  120. data/spec/sinatra_modular/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +11 -0
  121. data/spec/sinatra_modular/db/migrate/core/20101224223620_create_users.rb +16 -0
  122. data/spec/sinatra_modular/db/migrate/external/20101224223628_create_authentications.rb +14 -0
  123. data/spec/sinatra_modular/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +15 -0
  124. data/spec/sinatra_modular/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +13 -0
  125. data/spec/sinatra_modular/filters.rb +27 -0
  126. data/spec/sinatra_modular/modular.rb +157 -0
  127. data/spec/sinatra_modular/myapp.rb +133 -0
  128. data/spec/sinatra_modular/sorcery_mailer.rb +25 -0
  129. data/spec/sinatra_modular/spec_modular/controller_activity_logging_spec.rb +85 -0
  130. data/spec/sinatra_modular/spec_modular/controller_brute_force_protection_spec.rb +70 -0
  131. data/spec/sinatra_modular/spec_modular/controller_http_basic_auth_spec.rb +53 -0
  132. data/spec/sinatra_modular/spec_modular/controller_oauth2_spec.rb +120 -0
  133. data/spec/sinatra_modular/spec_modular/controller_oauth_spec.rb +121 -0
  134. data/spec/sinatra_modular/spec_modular/controller_remember_me_spec.rb +64 -0
  135. data/spec/sinatra_modular/spec_modular/controller_session_timeout_spec.rb +57 -0
  136. data/spec/sinatra_modular/spec_modular/controller_spec.rb +116 -0
  137. data/spec/sinatra_modular/spec_modular/spec.opts +2 -0
  138. data/spec/sinatra_modular/spec_modular/spec_helper.rb +51 -0
  139. data/spec/sinatra_modular/user.rb +6 -0
  140. data/spec/sinatra_modular/views/test_login.erb +4 -0
  141. metadata +205 -37
  142. data/spec/untitled folder +0 -18
data/lib/sorcery.rb CHANGED
@@ -2,6 +2,10 @@ module Sorcery
2
2
  autoload :Model, 'sorcery/model'
3
3
  module Model
4
4
  autoload :TemporaryToken, 'sorcery/model/temporary_token'
5
+ module Adapters
6
+ autoload :ActiveRecord, 'sorcery/model/adapters/active_record'
7
+ autoload :Mongoid, 'sorcery/model/adapters/mongoid'
8
+ end
5
9
  module Submodules
6
10
  autoload :UserActivation, 'sorcery/model/submodules/user_activation'
7
11
  autoload :ResetPassword, 'sorcery/model/submodules/reset_password'
@@ -48,8 +52,30 @@ module Sorcery
48
52
  module TestHelpers
49
53
  autoload :Rails, 'sorcery/test_helpers/rails'
50
54
  autoload :Sinatra, 'sorcery/test_helpers/sinatra'
55
+ autoload :Internal, 'sorcery/test_helpers/internal'
56
+ module Internal
57
+ autoload :Rails, 'sorcery/test_helpers/internal/rails'
58
+ autoload :Sinatra, 'sorcery/test_helpers/internal/sinatra'
59
+ autoload :SinatraModular, 'sorcery/test_helpers/internal/sinatra_modular'
60
+ end
61
+
62
+ end
63
+
64
+ if defined?(ActiveRecord)
65
+ ActiveRecord::Base.send(:include, Sorcery::Model)
66
+ ActiveRecord::Base.send(:include, Sorcery::Model::Adapters::ActiveRecord)
67
+ end
68
+
69
+ if defined?(Mongoid)
70
+ Mongoid::Document.module_eval do
71
+ included do
72
+ attr_reader :new_record
73
+ include Sorcery::Model
74
+ include Sorcery::Model::Adapters::Mongoid
75
+ end
76
+ end
51
77
  end
52
-
78
+
53
79
  require 'sorcery/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
54
80
  require 'sorcery/sinatra' if defined?(Sinatra)
55
81
  end
data/sorcery.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sorcery}
8
- s.version = "0.4.1"
8
+ s.version = "0.5.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Noam Ben Ari"]
12
- s.date = %q{2011-04-21}
12
+ s.date = %q{2011-05-19}
13
13
  s.description = %q{Provides common authentication needs such as signing in/out, activating by email and resetting password.}
14
14
  s.email = %q{nbenari@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -56,6 +56,8 @@ Gem::Specification.new do |s|
56
56
  "lib/sorcery/engine.rb",
57
57
  "lib/sorcery/initializers/initializer.rb",
58
58
  "lib/sorcery/model.rb",
59
+ "lib/sorcery/model/adapters/active_record.rb",
60
+ "lib/sorcery/model/adapters/mongoid.rb",
59
61
  "lib/sorcery/model/submodules/activity_logging.rb",
60
62
  "lib/sorcery/model/submodules/brute_force_protection.rb",
61
63
  "lib/sorcery/model/submodules/external.rb",
@@ -66,6 +68,10 @@ Gem::Specification.new do |s|
66
68
  "lib/sorcery/railties/tasks.rake",
67
69
  "lib/sorcery/sinatra.rb",
68
70
  "lib/sorcery/test_helpers.rb",
71
+ "lib/sorcery/test_helpers/internal.rb",
72
+ "lib/sorcery/test_helpers/internal/rails.rb",
73
+ "lib/sorcery/test_helpers/internal/sinatra.rb",
74
+ "lib/sorcery/test_helpers/internal/sinatra_modular.rb",
69
75
  "lib/sorcery/test_helpers/rails.rb",
70
76
  "lib/sorcery/test_helpers/sinatra.rb",
71
77
  "sorcery.gemspec",
@@ -151,6 +157,67 @@ Gem::Specification.new do |s|
151
157
  "spec/rails3/spec/user_reset_password_spec.rb",
152
158
  "spec/rails3/spec/user_spec.rb",
153
159
  "spec/rails3/vendor/plugins/.gitkeep",
160
+ "spec/rails3_mongoid/.gitignore",
161
+ "spec/rails3_mongoid/.rspec",
162
+ "spec/rails3_mongoid/Gemfile",
163
+ "spec/rails3_mongoid/Gemfile.lock",
164
+ "spec/rails3_mongoid/Rakefile",
165
+ "spec/rails3_mongoid/app/controllers/application_controller.rb",
166
+ "spec/rails3_mongoid/app/helpers/application_helper.rb",
167
+ "spec/rails3_mongoid/app/mailers/sorcery_mailer.rb",
168
+ "spec/rails3_mongoid/app/models/authentication.rb",
169
+ "spec/rails3_mongoid/app/models/user.rb",
170
+ "spec/rails3_mongoid/app/views/layouts/application.html.erb",
171
+ "spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb",
172
+ "spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb",
173
+ "spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb",
174
+ "spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb",
175
+ "spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb",
176
+ "spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb",
177
+ "spec/rails3_mongoid/config.ru",
178
+ "spec/rails3_mongoid/config/application.rb",
179
+ "spec/rails3_mongoid/config/boot.rb",
180
+ "spec/rails3_mongoid/config/environment.rb",
181
+ "spec/rails3_mongoid/config/environments/development.rb",
182
+ "spec/rails3_mongoid/config/environments/in_memory.rb",
183
+ "spec/rails3_mongoid/config/environments/production.rb",
184
+ "spec/rails3_mongoid/config/environments/test.rb",
185
+ "spec/rails3_mongoid/config/initializers/backtrace_silencers.rb",
186
+ "spec/rails3_mongoid/config/initializers/inflections.rb",
187
+ "spec/rails3_mongoid/config/initializers/mime_types.rb",
188
+ "spec/rails3_mongoid/config/initializers/secret_token.rb",
189
+ "spec/rails3_mongoid/config/initializers/session_store.rb",
190
+ "spec/rails3_mongoid/config/locales/en.yml",
191
+ "spec/rails3_mongoid/config/mongoid.yml",
192
+ "spec/rails3_mongoid/config/routes.rb",
193
+ "spec/rails3_mongoid/db/schema.rb",
194
+ "spec/rails3_mongoid/db/seeds.rb",
195
+ "spec/rails3_mongoid/lib/tasks/.gitkeep",
196
+ "spec/rails3_mongoid/public/404.html",
197
+ "spec/rails3_mongoid/public/422.html",
198
+ "spec/rails3_mongoid/public/500.html",
199
+ "spec/rails3_mongoid/public/favicon.ico",
200
+ "spec/rails3_mongoid/public/images/rails.png",
201
+ "spec/rails3_mongoid/public/javascripts/application.js",
202
+ "spec/rails3_mongoid/public/javascripts/controls.js",
203
+ "spec/rails3_mongoid/public/javascripts/dragdrop.js",
204
+ "spec/rails3_mongoid/public/javascripts/effects.js",
205
+ "spec/rails3_mongoid/public/javascripts/prototype.js",
206
+ "spec/rails3_mongoid/public/javascripts/rails.js",
207
+ "spec/rails3_mongoid/public/robots.txt",
208
+ "spec/rails3_mongoid/public/stylesheets/.gitkeep",
209
+ "spec/rails3_mongoid/script/rails",
210
+ "spec/rails3_mongoid/spec/spec.opts",
211
+ "spec/rails3_mongoid/spec/spec_helper.orig.rb",
212
+ "spec/rails3_mongoid/spec/spec_helper.rb",
213
+ "spec/rails3_mongoid/spec/user_activation_spec.rb",
214
+ "spec/rails3_mongoid/spec/user_activity_logging_spec.rb",
215
+ "spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb",
216
+ "spec/rails3_mongoid/spec/user_oauth_spec.rb",
217
+ "spec/rails3_mongoid/spec/user_remember_me_spec.rb",
218
+ "spec/rails3_mongoid/spec/user_reset_password_spec.rb",
219
+ "spec/rails3_mongoid/spec/user_spec.rb",
220
+ "spec/rails3_mongoid/vendor/plugins/.gitkeep",
154
221
  "spec/sinatra/Gemfile",
155
222
  "spec/sinatra/Gemfile.lock",
156
223
  "spec/sinatra/Rakefile",
@@ -163,6 +230,7 @@ Gem::Specification.new do |s|
163
230
  "spec/sinatra/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
164
231
  "spec/sinatra/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
165
232
  "spec/sinatra/filters.rb",
233
+ "spec/sinatra/modular.rb",
166
234
  "spec/sinatra/myapp.rb",
167
235
  "spec/sinatra/sorcery_mailer.rb",
168
236
  "spec/sinatra/spec/controller_activity_logging_spec.rb",
@@ -177,10 +245,36 @@ Gem::Specification.new do |s|
177
245
  "spec/sinatra/spec/spec_helper.rb",
178
246
  "spec/sinatra/user.rb",
179
247
  "spec/sinatra/views/test_login.erb",
248
+ "spec/sinatra_modular/Gemfile",
249
+ "spec/sinatra_modular/Gemfile.lock",
250
+ "spec/sinatra_modular/Rakefile",
251
+ "spec/sinatra_modular/authentication.rb",
252
+ "spec/sinatra_modular/db/migrate/activation/20101224223622_add_activation_to_users.rb",
253
+ "spec/sinatra_modular/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
254
+ "spec/sinatra_modular/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
255
+ "spec/sinatra_modular/db/migrate/core/20101224223620_create_users.rb",
256
+ "spec/sinatra_modular/db/migrate/external/20101224223628_create_authentications.rb",
257
+ "spec/sinatra_modular/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
258
+ "spec/sinatra_modular/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
259
+ "spec/sinatra_modular/filters.rb",
260
+ "spec/sinatra_modular/modular.rb",
261
+ "spec/sinatra_modular/myapp.rb",
262
+ "spec/sinatra_modular/sorcery_mailer.rb",
263
+ "spec/sinatra_modular/spec_modular/controller_activity_logging_spec.rb",
264
+ "spec/sinatra_modular/spec_modular/controller_brute_force_protection_spec.rb",
265
+ "spec/sinatra_modular/spec_modular/controller_http_basic_auth_spec.rb",
266
+ "spec/sinatra_modular/spec_modular/controller_oauth2_spec.rb",
267
+ "spec/sinatra_modular/spec_modular/controller_oauth_spec.rb",
268
+ "spec/sinatra_modular/spec_modular/controller_remember_me_spec.rb",
269
+ "spec/sinatra_modular/spec_modular/controller_session_timeout_spec.rb",
270
+ "spec/sinatra_modular/spec_modular/controller_spec.rb",
271
+ "spec/sinatra_modular/spec_modular/spec.opts",
272
+ "spec/sinatra_modular/spec_modular/spec_helper.rb",
273
+ "spec/sinatra_modular/user.rb",
274
+ "spec/sinatra_modular/views/test_login.erb",
180
275
  "spec/sorcery_crypto_providers_spec.rb",
181
276
  "spec/spec.opts",
182
- "spec/spec_helper.rb",
183
- "spec/untitled folder"
277
+ "spec/spec_helper.rb"
184
278
  ]
185
279
  s.homepage = %q{http://github.com/NoamB/sorcery}
186
280
  s.licenses = ["MIT"]
@@ -232,6 +326,35 @@ Gem::Specification.new do |s|
232
326
  "spec/rails3/spec/user_remember_me_spec.rb",
233
327
  "spec/rails3/spec/user_reset_password_spec.rb",
234
328
  "spec/rails3/spec/user_spec.rb",
329
+ "spec/rails3_mongoid/app/controllers/application_controller.rb",
330
+ "spec/rails3_mongoid/app/helpers/application_helper.rb",
331
+ "spec/rails3_mongoid/app/mailers/sorcery_mailer.rb",
332
+ "spec/rails3_mongoid/app/models/authentication.rb",
333
+ "spec/rails3_mongoid/app/models/user.rb",
334
+ "spec/rails3_mongoid/config/application.rb",
335
+ "spec/rails3_mongoid/config/boot.rb",
336
+ "spec/rails3_mongoid/config/environment.rb",
337
+ "spec/rails3_mongoid/config/environments/development.rb",
338
+ "spec/rails3_mongoid/config/environments/in_memory.rb",
339
+ "spec/rails3_mongoid/config/environments/production.rb",
340
+ "spec/rails3_mongoid/config/environments/test.rb",
341
+ "spec/rails3_mongoid/config/initializers/backtrace_silencers.rb",
342
+ "spec/rails3_mongoid/config/initializers/inflections.rb",
343
+ "spec/rails3_mongoid/config/initializers/mime_types.rb",
344
+ "spec/rails3_mongoid/config/initializers/secret_token.rb",
345
+ "spec/rails3_mongoid/config/initializers/session_store.rb",
346
+ "spec/rails3_mongoid/config/routes.rb",
347
+ "spec/rails3_mongoid/db/schema.rb",
348
+ "spec/rails3_mongoid/db/seeds.rb",
349
+ "spec/rails3_mongoid/spec/spec_helper.orig.rb",
350
+ "spec/rails3_mongoid/spec/spec_helper.rb",
351
+ "spec/rails3_mongoid/spec/user_activation_spec.rb",
352
+ "spec/rails3_mongoid/spec/user_activity_logging_spec.rb",
353
+ "spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb",
354
+ "spec/rails3_mongoid/spec/user_oauth_spec.rb",
355
+ "spec/rails3_mongoid/spec/user_remember_me_spec.rb",
356
+ "spec/rails3_mongoid/spec/user_reset_password_spec.rb",
357
+ "spec/rails3_mongoid/spec/user_spec.rb",
235
358
  "spec/sinatra/authentication.rb",
236
359
  "spec/sinatra/db/migrate/activation/20101224223622_add_activation_to_users.rb",
237
360
  "spec/sinatra/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
@@ -241,6 +364,7 @@ Gem::Specification.new do |s|
241
364
  "spec/sinatra/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
242
365
  "spec/sinatra/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
243
366
  "spec/sinatra/filters.rb",
367
+ "spec/sinatra/modular.rb",
244
368
  "spec/sinatra/myapp.rb",
245
369
  "spec/sinatra/sorcery_mailer.rb",
246
370
  "spec/sinatra/spec/controller_activity_logging_spec.rb",
@@ -253,6 +377,28 @@ Gem::Specification.new do |s|
253
377
  "spec/sinatra/spec/controller_spec.rb",
254
378
  "spec/sinatra/spec/spec_helper.rb",
255
379
  "spec/sinatra/user.rb",
380
+ "spec/sinatra_modular/authentication.rb",
381
+ "spec/sinatra_modular/db/migrate/activation/20101224223622_add_activation_to_users.rb",
382
+ "spec/sinatra_modular/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
383
+ "spec/sinatra_modular/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
384
+ "spec/sinatra_modular/db/migrate/core/20101224223620_create_users.rb",
385
+ "spec/sinatra_modular/db/migrate/external/20101224223628_create_authentications.rb",
386
+ "spec/sinatra_modular/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
387
+ "spec/sinatra_modular/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
388
+ "spec/sinatra_modular/filters.rb",
389
+ "spec/sinatra_modular/modular.rb",
390
+ "spec/sinatra_modular/myapp.rb",
391
+ "spec/sinatra_modular/sorcery_mailer.rb",
392
+ "spec/sinatra_modular/spec_modular/controller_activity_logging_spec.rb",
393
+ "spec/sinatra_modular/spec_modular/controller_brute_force_protection_spec.rb",
394
+ "spec/sinatra_modular/spec_modular/controller_http_basic_auth_spec.rb",
395
+ "spec/sinatra_modular/spec_modular/controller_oauth2_spec.rb",
396
+ "spec/sinatra_modular/spec_modular/controller_oauth_spec.rb",
397
+ "spec/sinatra_modular/spec_modular/controller_remember_me_spec.rb",
398
+ "spec/sinatra_modular/spec_modular/controller_session_timeout_spec.rb",
399
+ "spec/sinatra_modular/spec_modular/controller_spec.rb",
400
+ "spec/sinatra_modular/spec_modular/spec_helper.rb",
401
+ "spec/sinatra_modular/user.rb",
256
402
  "spec/sorcery_crypto_providers_spec.rb",
257
403
  "spec/spec_helper.rb"
258
404
  ]
@@ -261,10 +407,12 @@ Gem::Specification.new do |s|
261
407
  s.specification_version = 3
262
408
 
263
409
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
264
- s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
265
- s.add_runtime_dependency(%q<json>, [">= 1.5.1"])
266
410
  s.add_runtime_dependency(%q<oauth>, [">= 0.4.4"])
267
411
  s.add_runtime_dependency(%q<oauth2>, [">= 0.1.1"])
412
+ s.add_development_dependency(%q<rails>, [">= 3.0.0"])
413
+ s.add_development_dependency(%q<json>, [">= 1.5.1"])
414
+ s.add_development_dependency(%q<mongoid>, ["~> 2.0"])
415
+ s.add_development_dependency(%q<bson_ext>, ["~> 1.3"])
268
416
  s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
269
417
  s.add_development_dependency(%q<rspec-rails>, ["~> 2.5.0"])
270
418
  s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
@@ -278,10 +426,12 @@ Gem::Specification.new do |s|
278
426
  s.add_runtime_dependency(%q<oauth>, [">= 0.4.4"])
279
427
  s.add_runtime_dependency(%q<oauth2>, [">= 0.1.1"])
280
428
  else
281
- s.add_dependency(%q<rails>, [">= 3.0.0"])
282
- s.add_dependency(%q<json>, [">= 1.5.1"])
283
429
  s.add_dependency(%q<oauth>, [">= 0.4.4"])
284
430
  s.add_dependency(%q<oauth2>, [">= 0.1.1"])
431
+ s.add_dependency(%q<rails>, [">= 3.0.0"])
432
+ s.add_dependency(%q<json>, [">= 1.5.1"])
433
+ s.add_dependency(%q<mongoid>, ["~> 2.0"])
434
+ s.add_dependency(%q<bson_ext>, ["~> 1.3"])
285
435
  s.add_dependency(%q<rspec>, ["~> 2.5.0"])
286
436
  s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
287
437
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
@@ -296,10 +446,12 @@ Gem::Specification.new do |s|
296
446
  s.add_dependency(%q<oauth2>, [">= 0.1.1"])
297
447
  end
298
448
  else
299
- s.add_dependency(%q<rails>, [">= 3.0.0"])
300
- s.add_dependency(%q<json>, [">= 1.5.1"])
301
449
  s.add_dependency(%q<oauth>, [">= 0.4.4"])
302
450
  s.add_dependency(%q<oauth2>, [">= 0.1.1"])
451
+ s.add_dependency(%q<rails>, [">= 3.0.0"])
452
+ s.add_dependency(%q<json>, [">= 1.5.1"])
453
+ s.add_dependency(%q<mongoid>, ["~> 2.0"])
454
+ s.add_dependency(%q<bson_ext>, ["~> 1.3"])
303
455
  s.add_dependency(%q<rspec>, ["~> 2.5.0"])
304
456
  s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
305
457
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
data/spec/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem "rails", '3.0.3'
4
4
  gem 'bcrypt-ruby', :require => 'bcrypt'
5
- gem "sorcery", '0.4.1', :path => '../../../'
5
+ gem "sorcery", '>= 0.1.0', :path => '../'
6
6
  gem 'oauth', ">= 0.4.4"
7
7
  gem 'oauth2', ">= 0.1.1"
8
8
  group :development do
data/spec/Gemfile.lock CHANGED
@@ -1,7 +1,12 @@
1
1
  PATH
2
- remote: ../../../
2
+ remote: ../
3
3
  specs:
4
- sorcery (0.4.1)
4
+ sorcery (0.5.2)
5
+ bcrypt-ruby (~> 2.1.4)
6
+ oauth (>= 0.4.4)
7
+ oauth (>= 0.4.4)
8
+ oauth2 (>= 0.1.1)
9
+ oauth2 (>= 0.1.1)
5
10
 
6
11
  GEM
7
12
  remote: http://rubygems.org/
@@ -36,7 +41,7 @@ GEM
36
41
  addressable (2.2.4)
37
42
  archive-tar-minitar (0.5.2)
38
43
  arel (2.0.6)
39
- bcrypt-ruby (2.1.3)
44
+ bcrypt-ruby (2.1.4)
40
45
  builder (2.1.2)
41
46
  columnize (0.3.2)
42
47
  diff-lcs (1.1.2)
@@ -118,4 +123,4 @@ DEPENDENCIES
118
123
  rspec (~> 2.5.0)
119
124
  ruby-debug19
120
125
  simplecov (>= 0.3.8)
121
- sorcery (= 0.4.1)!
126
+ sorcery (>= 0.1.0)!
data/spec/rails3/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'rails', '3.0.3'
4
4
  gem 'sqlite3-ruby', :require => 'sqlite3'
5
- gem "sorcery", '0.4.1', :path => '../../../'
5
+ gem "sorcery", '>= 0.1.0', :path => '../../../'
6
6
 
7
7
  group :development, :test do
8
8
  gem "rspec", "~> 2.5.0"
@@ -2,14 +2,12 @@ PATH
2
2
  remote: ../../../
3
3
  specs:
4
4
  oauth (0.4.4)
5
- sorcery (0.4.1)
5
+ sorcery (0.5.2)
6
6
  bcrypt-ruby (~> 2.1.4)
7
- json (>= 1.5.1)
8
7
  oauth (>= 0.4.4)
9
8
  oauth (>= 0.4.4)
10
9
  oauth2 (>= 0.1.1)
11
10
  oauth2 (>= 0.1.1)
12
- rails (>= 3.0.0)
13
11
 
14
12
  GEM
15
13
  remote: http://rubygems.org/
@@ -55,7 +53,6 @@ GEM
55
53
  multipart-post (~> 1.1.0)
56
54
  rack (< 2, >= 1.1.0)
57
55
  i18n (0.5.0)
58
- json (1.5.1)
59
56
  linecache19 (0.5.11)
60
57
  ruby_core_source (>= 0.1.4)
61
58
  mail (2.2.13)
@@ -64,11 +61,11 @@ GEM
64
61
  mime-types (~> 1.16)
65
62
  treetop (~> 1.4.8)
66
63
  mime-types (1.16)
67
- multi_json (0.0.5)
64
+ multi_json (1.0.1)
68
65
  multipart-post (1.1.0)
69
- oauth2 (0.4.0)
70
- faraday (~> 0.6.0)
71
- multi_json (~> 0.0.4)
66
+ oauth2 (0.4.1)
67
+ faraday (~> 0.6.1)
68
+ multi_json (>= 0.0.5)
72
69
  polyglot (0.3.1)
73
70
  rack (1.2.1)
74
71
  rack-mount (0.6.13)
@@ -131,6 +128,6 @@ DEPENDENCIES
131
128
  rspec-rails (~> 2.5.0)
132
129
  ruby-debug19
133
130
  simplecov (>= 0.3.8)
134
- sorcery (= 0.4.1)!
131
+ sorcery (>= 0.1.0)!
135
132
  sqlite3-ruby
136
133
  timecop
@@ -22,10 +22,8 @@ describe ApplicationController do
22
22
  after(:each) do
23
23
  User.delete_all
24
24
  end
25
-
26
- it "should respond to 'current_users'" do
27
- subject.should respond_to(:current_users)
28
- end
25
+
26
+ specify { subject.should respond_to(:current_users) }
29
27
 
30
28
  it "'current_users' should be empty when no users are logged in" do
31
29
  subject.current_users.size.should == 0
@@ -31,7 +31,7 @@ describe ApplicationController do
31
31
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/external")
32
32
  end
33
33
  # ----------------- OAuth -----------------------
34
- describe ApplicationController, "'login_from'" do
34
+ describe ApplicationController, "'using external API to login'" do
35
35
 
36
36
  before(:each) do
37
37
  stub_all_oauth_requests!
@@ -64,7 +64,7 @@ describe ApplicationController do
64
64
  end
65
65
  end
66
66
 
67
- describe ApplicationController, "'create_from'" do
67
+ describe ApplicationController, "using 'create_from'" do
68
68
  before(:each) do
69
69
  stub_all_oauth_requests!
70
70
  User.delete_all
@@ -90,7 +90,7 @@ describe ApplicationController do
90
90
  end
91
91
  end
92
92
 
93
- describe ApplicationController, "OAuth with User Activation features" do
93
+ describe ApplicationController, "using OAuth with User Activation features" do
94
94
  before(:all) do
95
95
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/activation")
96
96
  sorcery_reload!([:user_activation,:external], :user_activation_mailer => ::SorceryMailer)
@@ -29,26 +29,27 @@ describe ApplicationController do
29
29
  response.should be_a_redirect
30
30
  end
31
31
 
32
- it "with 'session_timeout_from_last_action' should not logout if there was activity" do
33
- sorcery_controller_property_set(:session_timeout_from_last_action, true)
34
- get :test_login, :username => 'gizmo', :password => 'secret'
35
- Timecop.travel(Time.now+0.3)
36
- get :test_should_be_logged_in
37
- session[:user_id].should_not be_nil
38
- Timecop.travel(Time.now+0.3)
39
- get :test_should_be_logged_in
40
- session[:user_id].should_not be_nil
41
- response.should be_a_success
42
- end
32
+ context "with 'session_timeout_from_last_action'" do
33
+ it "should not logout if there was activity" do
34
+ sorcery_controller_property_set(:session_timeout_from_last_action, true)
35
+ get :test_login, :username => 'gizmo', :password => 'secret'
36
+ Timecop.travel(Time.now+0.3)
37
+ get :test_should_be_logged_in
38
+ session[:user_id].should_not be_nil
39
+ Timecop.travel(Time.now+0.3)
40
+ get :test_should_be_logged_in
41
+ session[:user_id].should_not be_nil
42
+ response.should be_a_success
43
+ end
43
44
 
44
- it "with 'session_timeout_from_last_action' should logout if there was no activity" do
45
- sorcery_controller_property_set(:session_timeout_from_last_action, true)
46
- get :test_login, :username => 'gizmo', :password => 'secret'
47
- Timecop.travel(Time.now+0.6)
48
- get :test_should_be_logged_in
49
- session[:user_id].should be_nil
50
- response.should be_a_redirect
45
+ it "with 'session_timeout_from_last_action' should logout if there was no activity" do
46
+ sorcery_controller_property_set(:session_timeout_from_last_action, true)
47
+ get :test_login, :username => 'gizmo', :password => 'secret'
48
+ Timecop.travel(Time.now+0.6)
49
+ get :test_should_be_logged_in
50
+ session[:user_id].should be_nil
51
+ response.should be_a_redirect
52
+ end
51
53
  end
52
-
53
54
  end
54
55
  end
@@ -37,21 +37,13 @@ describe ApplicationController do
37
37
  sorcery_controller_property_set(:user_class, User)
38
38
  end
39
39
 
40
- it "should respond to the instance method login" do
41
- should respond_to(:login)
42
- end
43
-
44
- it "should respond to the instance method logout" do
45
- should respond_to(:logout)
46
- end
40
+ specify { should respond_to(:login) }
41
+
42
+ specify { should respond_to(:logout) }
47
43
 
48
- it "should respond to the instance method logged_in?" do
49
- should respond_to(:logged_in?)
50
- end
44
+ specify { should respond_to(:logged_in?) }
51
45
 
52
- it "should respond to the instance method current_user" do
53
- should respond_to(:current_user)
54
- end
46
+ specify { should respond_to(:current_user) }
55
47
 
56
48
  it "login(username,password) should return the user when success and set the session with user.id" do
57
49
  get :test_login, :username => 'gizmo', :password => 'secret'
@@ -93,9 +85,7 @@ describe ApplicationController do
93
85
  subject.current_user.should == false
94
86
  end
95
87
 
96
- it "should respond to 'require_login'" do
97
- should respond_to(:require_login)
98
- end
88
+ specify { should respond_to(:require_login) }
99
89
 
100
90
  it "should call the configured 'not_authenticated_action' when authenticate before_filter fails" do
101
91
  session[:user_id] = nil
@@ -65,6 +65,6 @@ class TestMailer < ActionMailer::Base
65
65
 
66
66
  end
67
67
 
68
- include ::Sorcery::TestHelpers
69
- include ::Sorcery::TestHelpers::Rails
68
+ include ::Sorcery::TestHelpers::Internal
69
+ include ::Sorcery::TestHelpers::Internal::Rails
70
70
 
@@ -57,23 +57,17 @@ describe "User with activation submodule" do
57
57
  sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
58
58
  end
59
59
 
60
- it "should generate an activation code on registration" do
60
+ before(:each) do
61
61
  create_new_user
62
- @user.activation_token.should_not be_nil
63
62
  end
64
63
 
65
64
  it "should initialize user state to 'pending'" do
66
- create_new_user
67
65
  @user.activation_state.should == "pending"
68
66
  end
69
67
 
70
- it "should respond to 'activate!'" do
71
- create_new_user
72
- @user.should respond_to(:activate!)
73
- end
68
+ specify { @user.should respond_to(:activate!) }
74
69
 
75
70
  it "should clear activation code and change state to 'active' on activation" do
76
- create_new_user
77
71
  activation_token = @user.activation_token
78
72
  @user.activate!
79
73
  @user2 = User.find(@user.id) # go to db to make sure it was saved and not just in memory
@@ -89,7 +83,6 @@ describe "User with activation submodule" do
89
83
  end
90
84
 
91
85
  it "subsequent saves do not send activation email" do
92
- create_new_user
93
86
  old_size = ActionMailer::Base.deliveries.size
94
87
  @user.username = "Shauli"
95
88
  @user.save!
@@ -97,14 +90,12 @@ describe "User with activation submodule" do
97
90
  end
98
91
 
99
92
  it "should send the user an activation success email on successful activation" do
100
- create_new_user
101
93
  old_size = ActionMailer::Base.deliveries.size
102
94
  @user.activate!
103
95
  ActionMailer::Base.deliveries.size.should == old_size + 1
104
96
  end
105
97
 
106
98
  it "subsequent saves do not send activation success email" do
107
- create_new_user
108
99
  @user.activate!
109
100
  old_size = ActionMailer::Base.deliveries.size
110
101
  @user.username = "Shauli"
@@ -121,7 +112,6 @@ describe "User with activation submodule" do
121
112
 
122
113
  it "activation success email is optional" do
123
114
  sorcery_model_property_set(:activation_success_email_method_name, nil)
124
- create_new_user
125
115
  old_size = ActionMailer::Base.deliveries.size
126
116
  @user.activate!
127
117
  ActionMailer::Base.deliveries.size.should == old_size
@@ -21,13 +21,8 @@ describe "User with brute_force_protection submodule" do
21
21
  User.sorcery_config.reset!
22
22
  end
23
23
 
24
- it "should respond to 'failed_logins_count'" do
25
- @user.should respond_to(:failed_logins_count)
26
- end
27
-
28
- it "should respond to 'lock_expires_at'" do
29
- @user.should respond_to(:failed_logins_count)
30
- end
24
+ specify { @user.should respond_to(:failed_logins_count) }
25
+ specify { @user.should respond_to(:lock_expires_at) }
31
26
 
32
27
  it "should enable configuration option 'failed_logins_count_attribute_name'" do
33
28
  sorcery_model_property_set(:failed_logins_count_attribute_name, :my_count)
@@ -49,28 +44,5 @@ describe "User with brute_force_protection submodule" do
49
44
  User.sorcery_config.login_lock_time_period.should == 2.hours
50
45
  end
51
46
  end
52
-
53
- # ----------------- PLUGIN ACTIVATED -----------------------
54
- describe User, "when activated with sorcery" do
55
-
56
- before(:all) do
57
- sorcery_reload!([:brute_force_protection])
58
- end
59
-
60
- before(:each) do
61
- User.delete_all
62
- end
63
-
64
- # it "should increment failed_logins_count on a failed login" do
65
- # create_new_user
66
- #
67
- # end
68
- #
69
- # it "should set lock expiry (effectively lock user) when failed_logins_count reaches max within max period" do
70
- # create_new_user
71
- # @user.lock_expires_at.should == Time.now.utc + 30
72
- # end
73
-
74
- end
75
47
 
76
48
  end