sorcery 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sorcery might be problematic. Click here for more details.

Files changed (131) hide show
  1. data/Gemfile +3 -2
  2. data/Gemfile.lock +13 -11
  3. data/README.rdoc +89 -61
  4. data/Rakefile +4 -4
  5. data/VERSION +1 -1
  6. data/lib/generators/sorcery_migration/templates/core.rb +2 -2
  7. data/lib/sorcery.rb +1 -0
  8. data/lib/sorcery/controller.rb +16 -18
  9. data/lib/sorcery/controller/submodules/http_basic_auth.rb +1 -1
  10. data/lib/sorcery/crypto_providers/bcrypt.rb +1 -1
  11. data/lib/sorcery/crypto_providers/common.rb +35 -0
  12. data/lib/sorcery/crypto_providers/md5.rb +3 -23
  13. data/lib/sorcery/crypto_providers/sha1.rb +4 -16
  14. data/lib/sorcery/crypto_providers/sha256.rb +3 -23
  15. data/lib/sorcery/crypto_providers/sha512.rb +3 -23
  16. data/lib/sorcery/engine.rb +4 -0
  17. data/lib/sorcery/initializers/initializer.rb +86 -0
  18. data/lib/sorcery/model.rb +4 -2
  19. data/lib/sorcery/railties/tasks.rake +10 -0
  20. data/lib/sorcery/sinatra.rb +0 -9
  21. data/lib/sorcery/test_helpers.rb +12 -0
  22. data/lib/sorcery/test_helpers/rails.rb +6 -9
  23. data/lib/sorcery/test_helpers/sinatra.rb +6 -9
  24. data/sorcery.gemspec +137 -146
  25. data/spec/Gemfile +2 -2
  26. data/spec/Gemfile.lock +10 -10
  27. data/spec/Rakefile +1 -0
  28. data/spec/rails3/{app_root/.gitignore → .gitignore} +0 -0
  29. data/spec/rails3/.rspec +1 -1
  30. data/spec/rails3/{app_root/Gemfile → Gemfile} +4 -4
  31. data/spec/rails3/{app_root/Gemfile.lock → Gemfile.lock} +20 -20
  32. data/spec/rails3/{app_root/README → README} +0 -0
  33. data/spec/rails3/{app_root/Rakefile → Rakefile} +1 -0
  34. data/spec/rails3/{app_root/Rakefile.unused → Rakefile.unused} +0 -0
  35. data/spec/rails3/{app_root/app → app}/controllers/application_controller.rb +0 -0
  36. data/spec/rails3/{app_root/app → app}/helpers/application_helper.rb +0 -0
  37. data/spec/rails3/{app_root/app → app}/mailers/sorcery_mailer.rb +0 -0
  38. data/spec/rails3/{app_root/app → app}/models/authentication.rb +0 -0
  39. data/spec/rails3/{app_root/app → app}/models/user.rb +0 -0
  40. data/spec/rails3/{app_root/app → app}/views/layouts/application.html.erb +0 -0
  41. data/spec/rails3/{app_root/app → app}/views/sorcery_mailer/activation_email.html.erb +0 -0
  42. data/spec/rails3/{app_root/app → app}/views/sorcery_mailer/activation_email.text.erb +0 -0
  43. data/spec/rails3/{app_root/app → app}/views/sorcery_mailer/activation_success_email.html.erb +0 -0
  44. data/spec/rails3/{app_root/app → app}/views/sorcery_mailer/activation_success_email.text.erb +0 -0
  45. data/spec/rails3/{app_root/app → app}/views/sorcery_mailer/reset_password_email.html.erb +0 -0
  46. data/spec/rails3/{app_root/app → app}/views/sorcery_mailer/reset_password_email.text.erb +0 -0
  47. data/spec/rails3/{app_root/config.ru → config.ru} +0 -0
  48. data/spec/rails3/{app_root/config → config}/application.rb +0 -0
  49. data/spec/rails3/{app_root/config → config}/boot.rb +0 -0
  50. data/spec/rails3/config/database.yml +27 -0
  51. data/spec/rails3/{app_root/config → config}/environment.rb +0 -0
  52. data/spec/rails3/{app_root/config → config}/environments/development.rb +0 -0
  53. data/spec/rails3/{app_root/config → config}/environments/in_memory.rb +0 -0
  54. data/spec/rails3/{app_root/config → config}/environments/production.rb +0 -0
  55. data/spec/rails3/{app_root/config → config}/environments/test.rb +0 -0
  56. data/spec/rails3/{app_root/config → config}/initializers/backtrace_silencers.rb +0 -0
  57. data/spec/rails3/{app_root/config → config}/initializers/inflections.rb +0 -0
  58. data/spec/rails3/{app_root/config → config}/initializers/mime_types.rb +0 -0
  59. data/spec/rails3/{app_root/config → config}/initializers/secret_token.rb +0 -0
  60. data/spec/rails3/{app_root/config → config}/initializers/session_store.rb +0 -0
  61. data/spec/rails3/{app_root/config → config}/locales/en.yml +0 -0
  62. data/spec/rails3/{app_root/config → config}/routes.rb +0 -0
  63. data/spec/rails3/{app_root/db → db}/migrate/activation/20101224223622_add_activation_to_users.rb +0 -0
  64. data/spec/rails3/{app_root/db → db}/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -0
  65. data/spec/rails3/{app_root/db → db}/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -0
  66. data/spec/rails3/{app_root/db → db}/migrate/core/20101224223620_create_users.rb +0 -0
  67. data/spec/rails3/{app_root/db → db}/migrate/external/20101224223628_create_authentications.rb +0 -0
  68. data/spec/rails3/{app_root/db → db}/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -0
  69. data/spec/rails3/{app_root/db → db}/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -0
  70. data/spec/rails3/{app_root/db → db}/schema.rb +0 -0
  71. data/spec/rails3/{app_root/db → db}/seeds.rb +0 -0
  72. data/spec/rails3/{app_root/lib → lib}/tasks/.gitkeep +0 -0
  73. data/spec/rails3/{app_root/public → public}/404.html +0 -0
  74. data/spec/rails3/{app_root/public → public}/422.html +0 -0
  75. data/spec/rails3/{app_root/public → public}/500.html +0 -0
  76. data/spec/rails3/{app_root/public → public}/favicon.ico +0 -0
  77. data/spec/rails3/{app_root/public → public}/images/rails.png +0 -0
  78. data/spec/rails3/{app_root/public → public}/index.html +0 -0
  79. data/spec/rails3/{app_root/public → public}/javascripts/application.js +0 -0
  80. data/spec/rails3/{app_root/public → public}/javascripts/controls.js +0 -0
  81. data/spec/rails3/{app_root/public → public}/javascripts/dragdrop.js +0 -0
  82. data/spec/rails3/{app_root/public → public}/javascripts/effects.js +0 -0
  83. data/spec/rails3/{app_root/public → public}/javascripts/prototype.js +0 -0
  84. data/spec/rails3/{app_root/public → public}/javascripts/rails.js +0 -0
  85. data/spec/rails3/{app_root/public → public}/robots.txt +0 -0
  86. data/spec/rails3/{app_root/public → public}/stylesheets/.gitkeep +0 -0
  87. data/spec/rails3/{app_root/script → script}/rails +0 -0
  88. data/spec/rails3/{app_root/spec → spec}/controller_activity_logging_spec.rb +0 -0
  89. data/spec/rails3/{app_root/spec → spec}/controller_brute_force_protection_spec.rb +3 -2
  90. data/spec/rails3/{app_root/spec → spec}/controller_http_basic_auth_spec.rb +0 -0
  91. data/spec/rails3/{app_root/spec → spec}/controller_oauth2_spec.rb +10 -9
  92. data/spec/rails3/{app_root/spec → spec}/controller_oauth_spec.rb +5 -5
  93. data/spec/rails3/{app_root/spec → spec}/controller_remember_me_spec.rb +0 -0
  94. data/spec/rails3/{app_root/spec → spec}/controller_session_timeout_spec.rb +8 -4
  95. data/spec/rails3/{app_root/spec → spec}/controller_spec.rb +0 -0
  96. data/spec/rails3/spec/spec.opts +2 -0
  97. data/spec/rails3/{app_root/spec → spec}/spec_helper.orig.rb +0 -0
  98. data/spec/rails3/spec/spec_helper.rb +70 -0
  99. data/spec/rails3/{app_root/spec → spec}/user_activation_spec.rb +5 -1
  100. data/spec/rails3/{app_root/spec → spec}/user_activity_logging_spec.rb +0 -0
  101. data/spec/rails3/{app_root/spec → spec}/user_brute_force_protection_spec.rb +0 -0
  102. data/spec/rails3/{app_root/spec → spec}/user_oauth_spec.rb +3 -3
  103. data/spec/rails3/{app_root/spec → spec}/user_remember_me_spec.rb +0 -0
  104. data/spec/rails3/{app_root/spec → spec}/user_reset_password_spec.rb +7 -3
  105. data/spec/rails3/{app_root/spec → spec}/user_spec.rb +3 -9
  106. data/spec/rails3/{app_root/vendor → vendor}/plugins/.gitkeep +0 -0
  107. data/spec/sinatra/Gemfile +3 -3
  108. data/spec/sinatra/Gemfile.lock +17 -17
  109. data/spec/sinatra/Rakefile +1 -0
  110. data/spec/sinatra/spec/controller_brute_force_protection_spec.rb +3 -2
  111. data/spec/sinatra/spec/controller_oauth2_spec.rb +10 -9
  112. data/spec/sinatra/spec/controller_oauth_spec.rb +5 -5
  113. data/spec/sinatra/spec/controller_session_timeout_spec.rb +8 -4
  114. data/spec/sinatra/spec/spec.opts +2 -4
  115. data/spec/sinatra/spec/spec_helper.rb +2 -1
  116. data/spec/sorcery_crypto_providers_spec.rb +5 -4
  117. data/spec/spec.opts +2 -0
  118. data/spec/spec_helper.rb +3 -4
  119. metadata +148 -149
  120. data/lib/sorcery/controller/submodules/email.rb +0 -44
  121. data/lib/sorcery/controller/submodules/oauth.rb +0 -95
  122. data/spec/rails3/app_root/.rspec +0 -1
  123. data/spec/rails3/app_root/config/database.yml +0 -27
  124. data/spec/rails3/app_root/spec/spec_helper.rb +0 -62
  125. data/spec/sinatra/spec/user_activation_spec.rb +0 -188
  126. data/spec/sinatra/spec/user_activity_logging_spec.rb +0 -36
  127. data/spec/sinatra/spec/user_brute_force_protection_spec.rb +0 -76
  128. data/spec/sinatra/spec/user_oauth_spec.rb +0 -39
  129. data/spec/sinatra/spec/user_remember_me_spec.rb +0 -66
  130. data/spec/sinatra/spec/user_reset_password_spec.rb +0 -178
  131. data/spec/sinatra/spec/user_spec.rb +0 -317
@@ -8,30 +8,10 @@ module Sorcery
8
8
  #
9
9
  # Please use any other provider offered by Sorcery.
10
10
  class MD5
11
+ include Common
11
12
  class << self
12
- attr_accessor :join_token
13
-
14
- # The number of times to loop through the encryption.
15
- def stretches
16
- @stretches ||= 1
17
- end
18
- attr_writer :stretches
19
-
20
- # Turns your raw password into a MD5 hash.
21
- def encrypt(*tokens)
22
- digest = tokens.flatten.join(join_token)
23
- stretches.times { digest = Digest::MD5.hexdigest(digest) }
24
- digest
25
- end
26
-
27
- # Does the crypted password match the tokens? Uses the same tokens that were used to encrypt.
28
- def matches?(crypted, *tokens)
29
- encrypt(*tokens) == crypted
30
- end
31
-
32
- def reset!
33
- @stretches = 1
34
- @join_token = nil
13
+ def secure_digest(digest)
14
+ Digest::MD5.hexdigest(digest)
35
15
  end
36
16
  end
37
17
  end
@@ -5,34 +5,22 @@ module Sorcery
5
5
  # This class was made for the users transitioning from restful_authentication. I highly discourage using this
6
6
  # crypto provider as it inferior to your other options. Please use any other provider offered by Sorcery.
7
7
  class SHA1
8
+ include Common
8
9
  class << self
9
10
  def join_token
10
11
  @join_token ||= "--"
11
12
  end
12
- attr_writer :join_token
13
-
14
- # The number of times to loop through the encryption. This is ten because that is what restful_authentication defaults to.
15
- def stretches
16
- @stretches ||= 10
17
- end
18
- attr_writer :stretches
19
13
 
20
14
  # Turns your raw password into a Sha1 hash.
21
15
  def encrypt(*tokens)
22
16
  tokens = tokens.flatten
23
17
  digest = tokens.shift
24
- stretches.times { digest = Digest::SHA1.hexdigest([digest, *tokens].join(join_token)) }
18
+ stretches.times { digest = secure_digest([digest, *tokens].join(join_token)) }
25
19
  digest
26
20
  end
27
21
 
28
- # Does the crypted password match the tokens? Uses the same tokens that were used to encrypt.
29
- def matches?(crypted, *tokens)
30
- encrypt(*tokens) == crypted
31
- end
32
-
33
- def reset!
34
- @stretches = 10
35
- @join_token = nil
22
+ def secure_digest(digest)
23
+ Digest::SHA1.hexdigest(digest)
36
24
  end
37
25
  end
38
26
  end
@@ -24,30 +24,10 @@ module Sorcery
24
24
  #
25
25
  # Uses the Sha256 hash algorithm to encrypt passwords.
26
26
  class SHA256
27
+ include Common
27
28
  class << self
28
- attr_accessor :join_token
29
-
30
- # The number of times to loop through the encryption.
31
- def stretches
32
- @stretches ||= 20
33
- end
34
- attr_writer :stretches
35
-
36
- # Turns your raw password into a Sha256 hash.
37
- def encrypt(*tokens)
38
- digest = tokens.flatten.join(join_token)
39
- stretches.times { digest = Digest::SHA256.hexdigest(digest) }
40
- digest
41
- end
42
-
43
- # Does the crypted password match the tokens? Uses the same tokens that were used to encrypt.
44
- def matches?(crypted, *tokens)
45
- encrypt(*tokens) == crypted
46
- end
47
-
48
- def reset!
49
- @stretches = 20
50
- @join_token = nil
29
+ def secure_digest(digest)
30
+ Digest::SHA256.hexdigest(digest)
51
31
  end
52
32
  end
53
33
  end
@@ -24,30 +24,10 @@ module Sorcery
24
24
  #
25
25
  # Uses the Sha512 hash algorithm to encrypt passwords.
26
26
  class SHA512
27
+ include Common
27
28
  class << self
28
- attr_accessor :join_token
29
-
30
- # The number of times to loop through the encryption.
31
- def stretches
32
- @stretches ||= 20
33
- end
34
- attr_writer :stretches
35
-
36
- # Turns your raw password into a Sha512 hash.
37
- def encrypt(*tokens)
38
- digest = tokens.flatten.join(join_token)
39
- stretches.times { digest = Digest::SHA512.hexdigest(digest) }
40
- digest
41
- end
42
-
43
- # Does the crypted password match the tokens? Uses the same tokens that were used to encrypt.
44
- def matches?(crypted, *tokens)
45
- encrypt(*tokens) == crypted
46
- end
47
-
48
- def reset!
49
- @stretches = 20
50
- @join_token = nil
29
+ def secure_digest(digest)
30
+ Digest::SHA512.hexdigest(digest)
51
31
  end
52
32
  end
53
33
  end
@@ -23,5 +23,9 @@ module Sorcery
23
23
  end
24
24
  end
25
25
 
26
+ rake_tasks do
27
+ load "sorcery/railties/tasks.rake"
28
+ end
29
+
26
30
  end
27
31
  end
@@ -0,0 +1,86 @@
1
+ # The first thing you need to configure is which modules you need in your app.
2
+ # The default is nothing which will include only core features (password encryption, login/logout).
3
+ # Available submodules are: :user_activation, :http_basic_auth, :remember_me, :reset_password, :session_timeout, :brute_force_protection, :activity_logging, :external
4
+ Collaboration::Application.config.sorcery.submodules = []
5
+
6
+ # Here you can configure each submodule's features.
7
+ Collaboration::Application.config.sorcery.configure do |config|
8
+ # -- core --
9
+ # config.not_authenticated_action = :not_authenticated # what controller action to call for non-authenticated users. You can also override 'not_authenticated' instead.
10
+ # config.save_return_to_url = true # when a non logged in user tries to enter a page that requires login, save the URL he wanted to reach,
11
+ # and send him there after login, using 'redirect_back_or_to'.
12
+
13
+ # -- session timeout --
14
+ # config.session_timeout = 3600 # how long in seconds to keep the session alive.
15
+ # config.session_timeout_from_last_action = false # use the last action as the beginning of session timeout.
16
+
17
+ # -- http_basic_auth --
18
+ # config.controller_to_realm_map = {"application" => "Application"} # What realm to display for which controller name.
19
+ # For example {"My App" => "Application"}
20
+
21
+ # -- external --
22
+ # config.external_providers = [] # What providers are supported by this app, i.e. [:twitter, :facebook] .
23
+ #
24
+ # config.twitter.key = "eYVNBjBDi33aa9GkA3w"
25
+ # config.twitter.secret = "XpbeSdCoaKSmQGSeokz5qcUATClRW5u08QWNfv71N8"
26
+ # config.twitter.callback_url = "http://0.0.0.0:3000/oauth/callback?provider=twitter"
27
+ # config.twitter.user_info_mapping = {:email => "screen_name"}
28
+ #
29
+ # config.facebook.key = "34cebc81c08a521bc66e212f947d73ec"
30
+ # config.facebook.secret = "5b458d179f61d4f036ee66a497ffbcd0"
31
+ # config.facebook.callback_url = "http://0.0.0.0:3000/oauth/callback?provider=facebook"
32
+ # config.facebook.user_info_mapping = {:email => "name"}
33
+
34
+ # --- user config ---
35
+ config.user_config do |user|
36
+ # -- core --
37
+ # user.username_attribute_name = # change default username attribute, for example, to use :email as the login.
38
+ # user.password_attribute_name = # change *virtual* password attribute, the one which is used until an encrypted one is generated.
39
+ # user.email_attribute_name = # change default email attribute.
40
+ # user.crypted_password_attribute_name = # change default crypted_password attribute.
41
+ # user.salt_join_token = # what pattern to use to join the password with the salt
42
+ # user.salt_attribute_name = # change default salt attribute.
43
+ # user.stretches = # how many times to apply encryption to the password.
44
+ # user.encryption_key = # encryption key used to encrypt reversible encryptions such as AES256.
45
+ # user.encryption_provider = # change default encryption_provider.
46
+ # user.custom_encryption_provider = # use an external encryption class.
47
+ # user.encryption_algorithm = # encryption algorithm name. See 'encryption_algorithm=' for available options.
48
+
49
+ # -- user_activation --
50
+ # user.activation_state_attribute_name = # the attribute name to hold activation state (active/pending).
51
+ # user.activation_token_attribute_name = # the attribute name to hold activation code (sent by email).
52
+ # user.activation_token_expires_at_attribute_name = # the attribute name to hold activation code expiration date.
53
+ # user.activation_token_expiration_period = # how many seconds before the activation code expires. nil for never expires.
54
+ # user.user_activation_mailer = # your mailer class. Required.
55
+ # user.activation_needed_email_method_name = # activation needed email method on your mailer class.
56
+ # user.activation_success_email_method_name = # activation success email method on your mailer class.
57
+ # user.prevent_non_active_users_to_login = # do you want to prevent or allow users that did not activate by email to login?
58
+
59
+ # -- reset_password --
60
+ # user.reset_password_token_attribute_name = # reset password code attribute name.
61
+ # user.reset_password_token_expires_at_attribute_name = # expires at attribute name.
62
+ # user.reset_password_email_sent_at_attribute_name = # when was email sent, used for hammering protection.
63
+ # user.reset_password_mailer = # mailer class. Needed.
64
+ # user.reset_password_email_method_name = # reset password email method on your mailer class.
65
+ # user.reset_password_expiration_period = # how many seconds before the reset request expires. nil for never expires.
66
+ # user.reset_password_time_between_emails = # hammering protection, how long to wait before allowing another email to be sent.
67
+
68
+ # -- brute_force_protection --
69
+ # user.failed_logins_count_attribute_name = # failed logins attribute name.
70
+ # user.lock_expires_at_attribute_name = # this field indicates whether user is banned and when it will be active again.
71
+ # user.consecutive_login_retries_amount_limit = # how many failed logins allowed.
72
+ # user.login_lock_time_period = # how long the user should be banned. in seconds. 0 for permanent.
73
+
74
+ # -- activity logging --
75
+ # user.last_login_at_attribute_name = # last login attribute name.
76
+ # user.last_logout_at_attribute_name = # last logout attribute name.
77
+ # user.last_activity_at_attribute_name = # last activity attribute name.
78
+ # user.activity_timeout = # how long since last activity is the user defined logged out?
79
+
80
+ # -- external --
81
+ # user.authentications_class = # class which holds the various external provider data for this user.
82
+ # user.authentications_user_id_attribute_name = # user's identifier in authentications class.
83
+ # user.provider_attribute_name = # provider's identifier in authentications class.
84
+ # user.provider_uid_attribute_name = # user's external unique identifier in authentications class.
85
+ end
86
+ end
data/lib/sorcery/model.rb CHANGED
@@ -9,11 +9,13 @@ module Sorcery
9
9
  def self.included(klass)
10
10
  klass.class_eval do
11
11
  class << self
12
- def activate_sorcery!
12
+ def authenticates_with_sorcery!
13
13
  @sorcery_config = Config.new
14
14
  self.class_eval do
15
15
  extend ClassMethods # included here, before submodules, so they can be overriden by them.
16
16
  include InstanceMethods
17
+
18
+ # set the user_class for the controller methods which call it
17
19
  ::Sorcery::Controller::Config.user_class = self
18
20
  @sorcery_config.submodules = ::Sorcery::Controller::Config.submodules
19
21
  @sorcery_config.submodules.each do |mod|
@@ -25,7 +27,7 @@ module Sorcery
25
27
  end
26
28
  end
27
29
 
28
- yield @sorcery_config if block_given?
30
+ ::Sorcery::Controller::Config.user_config.tap{|blk| blk.call(@sorcery_config) if blk}
29
31
 
30
32
  self.class_eval do
31
33
  attr_accessor @sorcery_config.password_attribute_name
@@ -0,0 +1,10 @@
1
+ require 'fileutils'
2
+
3
+ namespace :sorcery do
4
+ desc "Adds sorcery's initializer file"
5
+ task :bootstrap do
6
+ src = File.join(File.dirname(__FILE__), '..', 'initializers', 'initializer.rb')
7
+ target = File.join(Rails.root, "config", "initializers", "sorcery.rb")
8
+ FileUtils.cp(src, target)
9
+ end
10
+ end
@@ -2,13 +2,4 @@ ActiveRecord::Base.send(:include, Sorcery::Model) if defined?(ActiveRecord)
2
2
  if defined?(Sinatra::Base)
3
3
  Sinatra::Base.send(:include, Sorcery::Controller::Adapters::Sinatra)
4
4
  Sinatra::Base.send(:include, Sorcery::Controller)
5
- # Sorcery::Controller::Config.class_eval do
6
- # class << self
7
- # def submodules=(mods)
8
- # @submodules = mods
9
- # Sinatra::Base.send(:include, Sorcery::Controller::Adapters::Sinatra)
10
- # Sinatra::Base.send(:include, Sorcery::Controller)
11
- # end
12
- # end
13
- # end
14
5
  end
@@ -1,5 +1,17 @@
1
1
  module Sorcery
2
+ # This file will be included in the spec_helper file.
2
3
  module TestHelpers
4
+ def self.included(base)
5
+ # reducing default cost for specs speed
6
+ CryptoProviders::BCrypt.class_eval do
7
+ class << self
8
+ def cost
9
+ 1
10
+ end
11
+ end
12
+ end
13
+ end
14
+
3
15
  # a patch to fix a bug in testing that happens when you 'destroy' a session twice.
4
16
  # After the first destroy, the session is an ordinary hash, and then when destroy is called again there's an exception.
5
17
  class ::Hash
@@ -20,23 +20,20 @@ module Sorcery
20
20
  ::Sorcery::Controller::Config.user_class = nil
21
21
  ActionController::Base.send(:include,::Sorcery::Controller)
22
22
 
23
- User.activate_sorcery! do |config|
23
+ ::Sorcery::Controller::Config.user_config do |user|
24
24
  options.each do |property,value|
25
- config.send(:"#{property}=", value)
25
+ user.send(:"#{property}=", value)
26
26
  end
27
27
  end
28
+ User.authenticates_with_sorcery!
28
29
  end
29
30
 
30
31
  def sorcery_controller_property_set(property, value)
31
- ApplicationController.activate_sorcery! do |config|
32
- config.send(:"#{property}=", value)
33
- end
32
+ ::Sorcery::Controller::Config.send(:"#{property}=", value)
34
33
  end
35
34
 
36
- def sorcery_controller_oauth_property_set(provider, property, value)
37
- ApplicationController.activate_sorcery! do |config|
38
- config.send(provider).send(:"#{property}=", value)
39
- end
35
+ def sorcery_controller_external_property_set(provider, property, value)
36
+ ::Sorcery::Controller::Config.send(provider).send(:"#{property}=", value)
40
37
  end
41
38
 
42
39
  def login_user(user = nil)
@@ -108,23 +108,20 @@ module Sorcery
108
108
  ::Sinatra::Application.send(:include, Sorcery::Controller::Adapters::Sinatra)
109
109
  ::Sinatra::Application.send(:include, Sorcery::Controller)
110
110
 
111
- User.activate_sorcery! do |config|
111
+ ::Sorcery::Controller::Config.user_config do |user|
112
112
  options.each do |property,value|
113
- config.send(:"#{property}=", value)
113
+ user.send(:"#{property}=", value)
114
114
  end
115
115
  end
116
+ User.authenticates_with_sorcery!
116
117
  end
117
118
 
118
119
  def sorcery_controller_property_set(property, value)
119
- ::Sinatra::Application.activate_sorcery! do |config|
120
- config.send(:"#{property}=", value)
121
- end
120
+ ::Sorcery::Controller::Config.send(:"#{property}=", value)
122
121
  end
123
122
 
124
- def sorcery_controller_oauth_property_set(provider, property, value)
125
- ::Sinatra::Application.activate_sorcery! do |config|
126
- config.send(provider).send(:"#{property}=", value)
127
- end
123
+ def sorcery_controller_external_property_set(provider, property, value)
124
+ ::Sorcery::Controller::Config.send(provider).send(:"#{property}=", value)
128
125
  end
129
126
  end
130
127
  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.3.1"
8
+ s.version = "0.4.0"
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-17}
12
+ s.date = %q{2011-04-21}
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 = [
@@ -38,23 +38,23 @@ Gem::Specification.new do |s|
38
38
  "lib/sorcery/controller/adapters/sinatra.rb",
39
39
  "lib/sorcery/controller/submodules/activity_logging.rb",
40
40
  "lib/sorcery/controller/submodules/brute_force_protection.rb",
41
- "lib/sorcery/controller/submodules/email.rb",
42
41
  "lib/sorcery/controller/submodules/external.rb",
43
42
  "lib/sorcery/controller/submodules/external/protocols/oauth1.rb",
44
43
  "lib/sorcery/controller/submodules/external/protocols/oauth2.rb",
45
44
  "lib/sorcery/controller/submodules/external/providers/facebook.rb",
46
45
  "lib/sorcery/controller/submodules/external/providers/twitter.rb",
47
46
  "lib/sorcery/controller/submodules/http_basic_auth.rb",
48
- "lib/sorcery/controller/submodules/oauth.rb",
49
47
  "lib/sorcery/controller/submodules/remember_me.rb",
50
48
  "lib/sorcery/controller/submodules/session_timeout.rb",
51
49
  "lib/sorcery/crypto_providers/aes256.rb",
52
50
  "lib/sorcery/crypto_providers/bcrypt.rb",
51
+ "lib/sorcery/crypto_providers/common.rb",
53
52
  "lib/sorcery/crypto_providers/md5.rb",
54
53
  "lib/sorcery/crypto_providers/sha1.rb",
55
54
  "lib/sorcery/crypto_providers/sha256.rb",
56
55
  "lib/sorcery/crypto_providers/sha512.rb",
57
56
  "lib/sorcery/engine.rb",
57
+ "lib/sorcery/initializers/initializer.rb",
58
58
  "lib/sorcery/model.rb",
59
59
  "lib/sorcery/model/submodules/activity_logging.rb",
60
60
  "lib/sorcery/model/submodules/brute_force_protection.rb",
@@ -63,6 +63,7 @@ Gem::Specification.new do |s|
63
63
  "lib/sorcery/model/submodules/reset_password.rb",
64
64
  "lib/sorcery/model/submodules/user_activation.rb",
65
65
  "lib/sorcery/model/temporary_token.rb",
66
+ "lib/sorcery/railties/tasks.rake",
66
67
  "lib/sorcery/sinatra.rb",
67
68
  "lib/sorcery/test_helpers.rb",
68
69
  "lib/sorcery/test_helpers/rails.rb",
@@ -71,85 +72,85 @@ Gem::Specification.new do |s|
71
72
  "spec/Gemfile",
72
73
  "spec/Gemfile.lock",
73
74
  "spec/Rakefile",
75
+ "spec/rails3/.gitignore",
74
76
  "spec/rails3/.rspec",
75
- "spec/rails3/app_root/.gitignore",
76
- "spec/rails3/app_root/.rspec",
77
- "spec/rails3/app_root/Gemfile",
78
- "spec/rails3/app_root/Gemfile.lock",
79
- "spec/rails3/app_root/README",
80
- "spec/rails3/app_root/Rakefile",
81
- "spec/rails3/app_root/Rakefile.unused",
82
- "spec/rails3/app_root/app/controllers/application_controller.rb",
83
- "spec/rails3/app_root/app/helpers/application_helper.rb",
84
- "spec/rails3/app_root/app/mailers/sorcery_mailer.rb",
85
- "spec/rails3/app_root/app/models/authentication.rb",
86
- "spec/rails3/app_root/app/models/user.rb",
87
- "spec/rails3/app_root/app/views/layouts/application.html.erb",
88
- "spec/rails3/app_root/app/views/sorcery_mailer/activation_email.html.erb",
89
- "spec/rails3/app_root/app/views/sorcery_mailer/activation_email.text.erb",
90
- "spec/rails3/app_root/app/views/sorcery_mailer/activation_success_email.html.erb",
91
- "spec/rails3/app_root/app/views/sorcery_mailer/activation_success_email.text.erb",
92
- "spec/rails3/app_root/app/views/sorcery_mailer/reset_password_email.html.erb",
93
- "spec/rails3/app_root/app/views/sorcery_mailer/reset_password_email.text.erb",
94
- "spec/rails3/app_root/config.ru",
95
- "spec/rails3/app_root/config/application.rb",
96
- "spec/rails3/app_root/config/boot.rb",
97
- "spec/rails3/app_root/config/database.yml",
98
- "spec/rails3/app_root/config/environment.rb",
99
- "spec/rails3/app_root/config/environments/development.rb",
100
- "spec/rails3/app_root/config/environments/in_memory.rb",
101
- "spec/rails3/app_root/config/environments/production.rb",
102
- "spec/rails3/app_root/config/environments/test.rb",
103
- "spec/rails3/app_root/config/initializers/backtrace_silencers.rb",
104
- "spec/rails3/app_root/config/initializers/inflections.rb",
105
- "spec/rails3/app_root/config/initializers/mime_types.rb",
106
- "spec/rails3/app_root/config/initializers/secret_token.rb",
107
- "spec/rails3/app_root/config/initializers/session_store.rb",
108
- "spec/rails3/app_root/config/locales/en.yml",
109
- "spec/rails3/app_root/config/routes.rb",
110
- "spec/rails3/app_root/db/migrate/activation/20101224223622_add_activation_to_users.rb",
111
- "spec/rails3/app_root/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
112
- "spec/rails3/app_root/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
113
- "spec/rails3/app_root/db/migrate/core/20101224223620_create_users.rb",
114
- "spec/rails3/app_root/db/migrate/external/20101224223628_create_authentications.rb",
115
- "spec/rails3/app_root/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
116
- "spec/rails3/app_root/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
117
- "spec/rails3/app_root/db/schema.rb",
118
- "spec/rails3/app_root/db/seeds.rb",
119
- "spec/rails3/app_root/lib/tasks/.gitkeep",
120
- "spec/rails3/app_root/public/404.html",
121
- "spec/rails3/app_root/public/422.html",
122
- "spec/rails3/app_root/public/500.html",
123
- "spec/rails3/app_root/public/favicon.ico",
124
- "spec/rails3/app_root/public/images/rails.png",
125
- "spec/rails3/app_root/public/index.html",
126
- "spec/rails3/app_root/public/javascripts/application.js",
127
- "spec/rails3/app_root/public/javascripts/controls.js",
128
- "spec/rails3/app_root/public/javascripts/dragdrop.js",
129
- "spec/rails3/app_root/public/javascripts/effects.js",
130
- "spec/rails3/app_root/public/javascripts/prototype.js",
131
- "spec/rails3/app_root/public/javascripts/rails.js",
132
- "spec/rails3/app_root/public/robots.txt",
133
- "spec/rails3/app_root/public/stylesheets/.gitkeep",
134
- "spec/rails3/app_root/script/rails",
135
- "spec/rails3/app_root/spec/controller_activity_logging_spec.rb",
136
- "spec/rails3/app_root/spec/controller_brute_force_protection_spec.rb",
137
- "spec/rails3/app_root/spec/controller_http_basic_auth_spec.rb",
138
- "spec/rails3/app_root/spec/controller_oauth2_spec.rb",
139
- "spec/rails3/app_root/spec/controller_oauth_spec.rb",
140
- "spec/rails3/app_root/spec/controller_remember_me_spec.rb",
141
- "spec/rails3/app_root/spec/controller_session_timeout_spec.rb",
142
- "spec/rails3/app_root/spec/controller_spec.rb",
143
- "spec/rails3/app_root/spec/spec_helper.orig.rb",
144
- "spec/rails3/app_root/spec/spec_helper.rb",
145
- "spec/rails3/app_root/spec/user_activation_spec.rb",
146
- "spec/rails3/app_root/spec/user_activity_logging_spec.rb",
147
- "spec/rails3/app_root/spec/user_brute_force_protection_spec.rb",
148
- "spec/rails3/app_root/spec/user_oauth_spec.rb",
149
- "spec/rails3/app_root/spec/user_remember_me_spec.rb",
150
- "spec/rails3/app_root/spec/user_reset_password_spec.rb",
151
- "spec/rails3/app_root/spec/user_spec.rb",
152
- "spec/rails3/app_root/vendor/plugins/.gitkeep",
77
+ "spec/rails3/Gemfile",
78
+ "spec/rails3/Gemfile.lock",
79
+ "spec/rails3/README",
80
+ "spec/rails3/Rakefile",
81
+ "spec/rails3/Rakefile.unused",
82
+ "spec/rails3/app/controllers/application_controller.rb",
83
+ "spec/rails3/app/helpers/application_helper.rb",
84
+ "spec/rails3/app/mailers/sorcery_mailer.rb",
85
+ "spec/rails3/app/models/authentication.rb",
86
+ "spec/rails3/app/models/user.rb",
87
+ "spec/rails3/app/views/layouts/application.html.erb",
88
+ "spec/rails3/app/views/sorcery_mailer/activation_email.html.erb",
89
+ "spec/rails3/app/views/sorcery_mailer/activation_email.text.erb",
90
+ "spec/rails3/app/views/sorcery_mailer/activation_success_email.html.erb",
91
+ "spec/rails3/app/views/sorcery_mailer/activation_success_email.text.erb",
92
+ "spec/rails3/app/views/sorcery_mailer/reset_password_email.html.erb",
93
+ "spec/rails3/app/views/sorcery_mailer/reset_password_email.text.erb",
94
+ "spec/rails3/config.ru",
95
+ "spec/rails3/config/application.rb",
96
+ "spec/rails3/config/boot.rb",
97
+ "spec/rails3/config/database.yml",
98
+ "spec/rails3/config/environment.rb",
99
+ "spec/rails3/config/environments/development.rb",
100
+ "spec/rails3/config/environments/in_memory.rb",
101
+ "spec/rails3/config/environments/production.rb",
102
+ "spec/rails3/config/environments/test.rb",
103
+ "spec/rails3/config/initializers/backtrace_silencers.rb",
104
+ "spec/rails3/config/initializers/inflections.rb",
105
+ "spec/rails3/config/initializers/mime_types.rb",
106
+ "spec/rails3/config/initializers/secret_token.rb",
107
+ "spec/rails3/config/initializers/session_store.rb",
108
+ "spec/rails3/config/locales/en.yml",
109
+ "spec/rails3/config/routes.rb",
110
+ "spec/rails3/db/migrate/activation/20101224223622_add_activation_to_users.rb",
111
+ "spec/rails3/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
112
+ "spec/rails3/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
113
+ "spec/rails3/db/migrate/core/20101224223620_create_users.rb",
114
+ "spec/rails3/db/migrate/external/20101224223628_create_authentications.rb",
115
+ "spec/rails3/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
116
+ "spec/rails3/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
117
+ "spec/rails3/db/schema.rb",
118
+ "spec/rails3/db/seeds.rb",
119
+ "spec/rails3/lib/tasks/.gitkeep",
120
+ "spec/rails3/public/404.html",
121
+ "spec/rails3/public/422.html",
122
+ "spec/rails3/public/500.html",
123
+ "spec/rails3/public/favicon.ico",
124
+ "spec/rails3/public/images/rails.png",
125
+ "spec/rails3/public/index.html",
126
+ "spec/rails3/public/javascripts/application.js",
127
+ "spec/rails3/public/javascripts/controls.js",
128
+ "spec/rails3/public/javascripts/dragdrop.js",
129
+ "spec/rails3/public/javascripts/effects.js",
130
+ "spec/rails3/public/javascripts/prototype.js",
131
+ "spec/rails3/public/javascripts/rails.js",
132
+ "spec/rails3/public/robots.txt",
133
+ "spec/rails3/public/stylesheets/.gitkeep",
134
+ "spec/rails3/script/rails",
135
+ "spec/rails3/spec/controller_activity_logging_spec.rb",
136
+ "spec/rails3/spec/controller_brute_force_protection_spec.rb",
137
+ "spec/rails3/spec/controller_http_basic_auth_spec.rb",
138
+ "spec/rails3/spec/controller_oauth2_spec.rb",
139
+ "spec/rails3/spec/controller_oauth_spec.rb",
140
+ "spec/rails3/spec/controller_remember_me_spec.rb",
141
+ "spec/rails3/spec/controller_session_timeout_spec.rb",
142
+ "spec/rails3/spec/controller_spec.rb",
143
+ "spec/rails3/spec/spec.opts",
144
+ "spec/rails3/spec/spec_helper.orig.rb",
145
+ "spec/rails3/spec/spec_helper.rb",
146
+ "spec/rails3/spec/user_activation_spec.rb",
147
+ "spec/rails3/spec/user_activity_logging_spec.rb",
148
+ "spec/rails3/spec/user_brute_force_protection_spec.rb",
149
+ "spec/rails3/spec/user_oauth_spec.rb",
150
+ "spec/rails3/spec/user_remember_me_spec.rb",
151
+ "spec/rails3/spec/user_reset_password_spec.rb",
152
+ "spec/rails3/spec/user_spec.rb",
153
+ "spec/rails3/vendor/plugins/.gitkeep",
153
154
  "spec/sinatra/Gemfile",
154
155
  "spec/sinatra/Gemfile.lock",
155
156
  "spec/sinatra/Rakefile",
@@ -174,16 +175,10 @@ Gem::Specification.new do |s|
174
175
  "spec/sinatra/spec/controller_spec.rb",
175
176
  "spec/sinatra/spec/spec.opts",
176
177
  "spec/sinatra/spec/spec_helper.rb",
177
- "spec/sinatra/spec/user_activation_spec.rb",
178
- "spec/sinatra/spec/user_activity_logging_spec.rb",
179
- "spec/sinatra/spec/user_brute_force_protection_spec.rb",
180
- "spec/sinatra/spec/user_oauth_spec.rb",
181
- "spec/sinatra/spec/user_remember_me_spec.rb",
182
- "spec/sinatra/spec/user_reset_password_spec.rb",
183
- "spec/sinatra/spec/user_spec.rb",
184
178
  "spec/sinatra/user.rb",
185
179
  "spec/sinatra/views/test_login.erb",
186
180
  "spec/sorcery_crypto_providers_spec.rb",
181
+ "spec/spec.opts",
187
182
  "spec/spec_helper.rb",
188
183
  "spec/untitled folder"
189
184
  ]
@@ -193,50 +188,50 @@ Gem::Specification.new do |s|
193
188
  s.rubygems_version = %q{1.6.2}
194
189
  s.summary = %q{Magical authentication for Rails 3 applications}
195
190
  s.test_files = [
196
- "spec/rails3/app_root/app/controllers/application_controller.rb",
197
- "spec/rails3/app_root/app/helpers/application_helper.rb",
198
- "spec/rails3/app_root/app/mailers/sorcery_mailer.rb",
199
- "spec/rails3/app_root/app/models/authentication.rb",
200
- "spec/rails3/app_root/app/models/user.rb",
201
- "spec/rails3/app_root/config/application.rb",
202
- "spec/rails3/app_root/config/boot.rb",
203
- "spec/rails3/app_root/config/environment.rb",
204
- "spec/rails3/app_root/config/environments/development.rb",
205
- "spec/rails3/app_root/config/environments/in_memory.rb",
206
- "spec/rails3/app_root/config/environments/production.rb",
207
- "spec/rails3/app_root/config/environments/test.rb",
208
- "spec/rails3/app_root/config/initializers/backtrace_silencers.rb",
209
- "spec/rails3/app_root/config/initializers/inflections.rb",
210
- "spec/rails3/app_root/config/initializers/mime_types.rb",
211
- "spec/rails3/app_root/config/initializers/secret_token.rb",
212
- "spec/rails3/app_root/config/initializers/session_store.rb",
213
- "spec/rails3/app_root/config/routes.rb",
214
- "spec/rails3/app_root/db/migrate/activation/20101224223622_add_activation_to_users.rb",
215
- "spec/rails3/app_root/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
216
- "spec/rails3/app_root/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
217
- "spec/rails3/app_root/db/migrate/core/20101224223620_create_users.rb",
218
- "spec/rails3/app_root/db/migrate/external/20101224223628_create_authentications.rb",
219
- "spec/rails3/app_root/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
220
- "spec/rails3/app_root/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
221
- "spec/rails3/app_root/db/schema.rb",
222
- "spec/rails3/app_root/db/seeds.rb",
223
- "spec/rails3/app_root/spec/controller_activity_logging_spec.rb",
224
- "spec/rails3/app_root/spec/controller_brute_force_protection_spec.rb",
225
- "spec/rails3/app_root/spec/controller_http_basic_auth_spec.rb",
226
- "spec/rails3/app_root/spec/controller_oauth2_spec.rb",
227
- "spec/rails3/app_root/spec/controller_oauth_spec.rb",
228
- "spec/rails3/app_root/spec/controller_remember_me_spec.rb",
229
- "spec/rails3/app_root/spec/controller_session_timeout_spec.rb",
230
- "spec/rails3/app_root/spec/controller_spec.rb",
231
- "spec/rails3/app_root/spec/spec_helper.orig.rb",
232
- "spec/rails3/app_root/spec/spec_helper.rb",
233
- "spec/rails3/app_root/spec/user_activation_spec.rb",
234
- "spec/rails3/app_root/spec/user_activity_logging_spec.rb",
235
- "spec/rails3/app_root/spec/user_brute_force_protection_spec.rb",
236
- "spec/rails3/app_root/spec/user_oauth_spec.rb",
237
- "spec/rails3/app_root/spec/user_remember_me_spec.rb",
238
- "spec/rails3/app_root/spec/user_reset_password_spec.rb",
239
- "spec/rails3/app_root/spec/user_spec.rb",
191
+ "spec/rails3/app/controllers/application_controller.rb",
192
+ "spec/rails3/app/helpers/application_helper.rb",
193
+ "spec/rails3/app/mailers/sorcery_mailer.rb",
194
+ "spec/rails3/app/models/authentication.rb",
195
+ "spec/rails3/app/models/user.rb",
196
+ "spec/rails3/config/application.rb",
197
+ "spec/rails3/config/boot.rb",
198
+ "spec/rails3/config/environment.rb",
199
+ "spec/rails3/config/environments/development.rb",
200
+ "spec/rails3/config/environments/in_memory.rb",
201
+ "spec/rails3/config/environments/production.rb",
202
+ "spec/rails3/config/environments/test.rb",
203
+ "spec/rails3/config/initializers/backtrace_silencers.rb",
204
+ "spec/rails3/config/initializers/inflections.rb",
205
+ "spec/rails3/config/initializers/mime_types.rb",
206
+ "spec/rails3/config/initializers/secret_token.rb",
207
+ "spec/rails3/config/initializers/session_store.rb",
208
+ "spec/rails3/config/routes.rb",
209
+ "spec/rails3/db/migrate/activation/20101224223622_add_activation_to_users.rb",
210
+ "spec/rails3/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
211
+ "spec/rails3/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
212
+ "spec/rails3/db/migrate/core/20101224223620_create_users.rb",
213
+ "spec/rails3/db/migrate/external/20101224223628_create_authentications.rb",
214
+ "spec/rails3/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
215
+ "spec/rails3/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
216
+ "spec/rails3/db/schema.rb",
217
+ "spec/rails3/db/seeds.rb",
218
+ "spec/rails3/spec/controller_activity_logging_spec.rb",
219
+ "spec/rails3/spec/controller_brute_force_protection_spec.rb",
220
+ "spec/rails3/spec/controller_http_basic_auth_spec.rb",
221
+ "spec/rails3/spec/controller_oauth2_spec.rb",
222
+ "spec/rails3/spec/controller_oauth_spec.rb",
223
+ "spec/rails3/spec/controller_remember_me_spec.rb",
224
+ "spec/rails3/spec/controller_session_timeout_spec.rb",
225
+ "spec/rails3/spec/controller_spec.rb",
226
+ "spec/rails3/spec/spec_helper.orig.rb",
227
+ "spec/rails3/spec/spec_helper.rb",
228
+ "spec/rails3/spec/user_activation_spec.rb",
229
+ "spec/rails3/spec/user_activity_logging_spec.rb",
230
+ "spec/rails3/spec/user_brute_force_protection_spec.rb",
231
+ "spec/rails3/spec/user_oauth_spec.rb",
232
+ "spec/rails3/spec/user_remember_me_spec.rb",
233
+ "spec/rails3/spec/user_reset_password_spec.rb",
234
+ "spec/rails3/spec/user_spec.rb",
240
235
  "spec/sinatra/authentication.rb",
241
236
  "spec/sinatra/db/migrate/activation/20101224223622_add_activation_to_users.rb",
242
237
  "spec/sinatra/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
@@ -257,13 +252,6 @@ Gem::Specification.new do |s|
257
252
  "spec/sinatra/spec/controller_session_timeout_spec.rb",
258
253
  "spec/sinatra/spec/controller_spec.rb",
259
254
  "spec/sinatra/spec/spec_helper.rb",
260
- "spec/sinatra/spec/user_activation_spec.rb",
261
- "spec/sinatra/spec/user_activity_logging_spec.rb",
262
- "spec/sinatra/spec/user_brute_force_protection_spec.rb",
263
- "spec/sinatra/spec/user_oauth_spec.rb",
264
- "spec/sinatra/spec/user_remember_me_spec.rb",
265
- "spec/sinatra/spec/user_reset_password_spec.rb",
266
- "spec/sinatra/spec/user_spec.rb",
267
255
  "spec/sinatra/user.rb",
268
256
  "spec/sorcery_crypto_providers_spec.rb",
269
257
  "spec/spec_helper.rb"
@@ -277,14 +265,15 @@ Gem::Specification.new do |s|
277
265
  s.add_runtime_dependency(%q<json>, [">= 1.5.1"])
278
266
  s.add_runtime_dependency(%q<oauth>, [">= 0.4.4"])
279
267
  s.add_runtime_dependency(%q<oauth2>, [">= 0.1.1"])
280
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
281
- s.add_development_dependency(%q<rspec-rails>, [">= 0"])
268
+ s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
269
+ s.add_development_dependency(%q<rspec-rails>, ["~> 2.5.0"])
282
270
  s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
283
271
  s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
284
272
  s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
285
273
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
286
274
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
287
275
  s.add_development_dependency(%q<simplecov>, [">= 0.3.8"])
276
+ s.add_development_dependency(%q<timecop>, [">= 0"])
288
277
  s.add_runtime_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
289
278
  s.add_runtime_dependency(%q<oauth>, [">= 0.4.4"])
290
279
  s.add_runtime_dependency(%q<oauth2>, [">= 0.1.1"])
@@ -293,14 +282,15 @@ Gem::Specification.new do |s|
293
282
  s.add_dependency(%q<json>, [">= 1.5.1"])
294
283
  s.add_dependency(%q<oauth>, [">= 0.4.4"])
295
284
  s.add_dependency(%q<oauth2>, [">= 0.1.1"])
296
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
297
- s.add_dependency(%q<rspec-rails>, [">= 0"])
285
+ s.add_dependency(%q<rspec>, ["~> 2.5.0"])
286
+ s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
298
287
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
299
288
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
300
289
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
301
290
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
302
291
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
303
292
  s.add_dependency(%q<simplecov>, [">= 0.3.8"])
293
+ s.add_dependency(%q<timecop>, [">= 0"])
304
294
  s.add_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
305
295
  s.add_dependency(%q<oauth>, [">= 0.4.4"])
306
296
  s.add_dependency(%q<oauth2>, [">= 0.1.1"])
@@ -310,14 +300,15 @@ Gem::Specification.new do |s|
310
300
  s.add_dependency(%q<json>, [">= 1.5.1"])
311
301
  s.add_dependency(%q<oauth>, [">= 0.4.4"])
312
302
  s.add_dependency(%q<oauth2>, [">= 0.1.1"])
313
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
314
- s.add_dependency(%q<rspec-rails>, [">= 0"])
303
+ s.add_dependency(%q<rspec>, ["~> 2.5.0"])
304
+ s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
315
305
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
316
306
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
317
307
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
318
308
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
319
309
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
320
310
  s.add_dependency(%q<simplecov>, [">= 0.3.8"])
311
+ s.add_dependency(%q<timecop>, [">= 0"])
321
312
  s.add_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
322
313
  s.add_dependency(%q<oauth>, [">= 0.4.4"])
323
314
  s.add_dependency(%q<oauth2>, [">= 0.1.1"])