sorcery 0.7.2 → 0.7.3

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.

data/Gemfile CHANGED
@@ -4,15 +4,12 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
  gem 'oauth', "~> 0.4.4"
6
6
  gem 'oauth2', "~> 0.4.1"
7
- gem 'mongo_mapper'
8
7
 
9
8
  # Add dependencies to develop your gem here.
10
9
  # Include everything needed to run rake, tests, features, etc.
11
10
  group :development do
12
11
  gem "rails", ">= 3.0.0"
13
12
  gem 'json', ">= 1.5.1"
14
- gem "mongoid", "~> 2.0"
15
- gem "bson_ext", "~> 1.3"
16
13
  gem "rspec", "~> 2.5.0"
17
14
  gem 'rspec-rails', "~> 2.5.0"
18
15
  gem 'ruby-debug19'
data/Gemfile.lock CHANGED
@@ -32,8 +32,6 @@ GEM
32
32
  addressable (2.2.6)
33
33
  archive-tar-minitar (0.5.2)
34
34
  arel (2.2.1)
35
- bson (1.4.1)
36
- bson_ext (1.4.1)
37
35
  builder (3.0.0)
38
36
  columnize (0.3.4)
39
37
  diff-lcs (1.1.3)
@@ -56,25 +54,13 @@ GEM
56
54
  i18n (>= 0.4.0)
57
55
  mime-types (~> 1.16)
58
56
  treetop (~> 1.4.8)
59
- mime-types (1.16)
60
- mongo (1.4.1)
61
- bson (= 1.4.1)
62
- mongo_mapper (0.9.2)
63
- activemodel (~> 3.0)
64
- activesupport (~> 3.0)
65
- plucky (~> 0.3.8)
66
- mongoid (2.3.2)
67
- activemodel (~> 3.1)
68
- mongo (~> 1.4)
69
- tzinfo (~> 0.3.22)
57
+ mime-types (1.17.2)
70
58
  multi_json (1.0.3)
71
59
  multipart-post (1.1.3)
72
60
  oauth (0.4.5)
73
61
  oauth2 (0.4.1)
74
62
  faraday (~> 0.6.1)
75
63
  multi_json (>= 0.0.5)
76
- plucky (0.3.8)
77
- mongo (~> 1.3)
78
64
  polyglot (0.3.2)
79
65
  rack (1.3.5)
80
66
  rack-cache (1.1)
@@ -100,7 +86,7 @@ GEM
100
86
  rake (>= 0.8.7)
101
87
  rdoc (~> 3.4)
102
88
  thor (~> 0.14.6)
103
- rake (0.9.2)
89
+ rake (0.9.2.2)
104
90
  rdoc (3.11)
105
91
  json (~> 1.4)
106
92
  rspec (2.5.0)
@@ -150,12 +136,9 @@ PLATFORMS
150
136
  ruby
151
137
 
152
138
  DEPENDENCIES
153
- bson_ext (~> 1.3)
154
139
  bundler (~> 1.0.0)
155
140
  jeweler (~> 1.5.2)
156
141
  json (>= 1.5.1)
157
- mongo_mapper
158
- mongoid (~> 2.0)
159
142
  oauth (~> 0.4.4)
160
143
  oauth2 (~> 0.4.1)
161
144
  rails (>= 3.0.0)
data/README.rdoc CHANGED
@@ -28,7 +28,7 @@ Railscast: http://railscasts.com/episodes/283-authentication-with-sorcery
28
28
 
29
29
  Example Rails 3 app using sorcery: https://github.com/NoamB/sorcery-example-app
30
30
 
31
- Documentation: http://rubydoc.info/gems/sorcery/0.7.2/frames
31
+ Documentation: http://rubydoc.info/gems/sorcery/0.7.3/frames
32
32
 
33
33
  Check out the tutorials in the github wiki!
34
34
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.2
1
+ 0.7.3
@@ -54,6 +54,7 @@ module Sorcery
54
54
  # Define the next_migration_number method (necessary for the migration_template method to work)
55
55
  def self.next_migration_number(dirname)
56
56
  if ActiveRecord::Base.timestamped_migrations
57
+ sleep 100 # make sure each time we get a different timestamp
57
58
  Time.new.utc.strftime("%Y%m%d%H%M%S")
58
59
  else
59
60
  "%.3d" % (current_migration_number(dirname) + 1)
@@ -52,14 +52,14 @@ module Sorcery
52
52
  # This runs as a hook just after a successful login.
53
53
  def register_login_time_to_db(user, credentials)
54
54
  return unless Config.register_login_time
55
- user.update_attributes!(user.sorcery_config.last_login_at_attribute_name => Time.now.utc)
55
+ user.update_attribute(user.sorcery_config.last_login_at_attribute_name, Time.now.in_time_zone)
56
56
  end
57
57
 
58
58
  # registers last logout time on every logout.
59
59
  # This runs as a hook just before a logout.
60
60
  def register_logout_time_to_db(user)
61
61
  return unless Config.register_logout_time
62
- user.update_attributes!(user.sorcery_config.last_logout_at_attribute_name => Time.now.utc)
62
+ user.update_attribute(user.sorcery_config.last_logout_at_attribute_name, Time.now.in_time_zone)
63
63
  end
64
64
 
65
65
  # Updates last activity time on every request.
@@ -67,10 +67,10 @@ module Sorcery
67
67
  def register_last_activity_time_to_db
68
68
  return unless Config.register_last_activity_time
69
69
  return unless logged_in?
70
- current_user.update_attributes!(current_user.sorcery_config.last_activity_at_attribute_name => Time.now.utc)
70
+ current_user.update_attribute(current_user.sorcery_config.last_activity_at_attribute_name, Time.now.in_time_zone)
71
71
  end
72
72
  end
73
73
  end
74
74
  end
75
75
  end
76
- end
76
+ end
@@ -30,10 +30,10 @@ module Sorcery
30
30
  # Runs as a hook after a successful login.
31
31
  def reset_failed_logins_count!(user, credentials)
32
32
  user.send(:"#{user_class.sorcery_config.failed_logins_count_attribute_name}=", 0)
33
- user.save!
33
+ user.save!(:validate => false)
34
34
  end
35
35
  end
36
36
  end
37
37
  end
38
38
  end
39
- end
39
+ end
@@ -55,7 +55,7 @@ module Sorcery
55
55
  user_hash = {}
56
56
  response = @access_token.get(@user_info_path)
57
57
  user_hash[:user_info] = JSON.parse(response.body)
58
- user_hash[:uid] = user_hash[:user_info]['id']
58
+ user_hash[:uid] = user_hash[:user_info]['id'].to_s
59
59
  user_hash
60
60
  end
61
61
 
@@ -1,7 +1,7 @@
1
1
  module Sorcery
2
2
  module Controller
3
3
  module Submodules
4
- # The Remember Me submodule takes care of setting the user's cookie so that he will
4
+ # The Remember Me submodule takes care of setting the user's cookie so that he will
5
5
  # be automatically logged in to the site on every visit,
6
6
  # until the cookie expires.
7
7
  # See Sorcery::Model::Submodules::RememberMe for configuration options.
@@ -12,20 +12,20 @@ module Sorcery
12
12
  Config.after_login << :remember_me_if_asked_to
13
13
  Config.after_logout << :forget_me!
14
14
  end
15
-
15
+
16
16
  module InstanceMethods
17
17
  # This method sets the cookie and calls the user to save the token and the expiration to db.
18
18
  def remember_me!
19
19
  current_user.remember_me!
20
- set_remember_me_cookie!(current_user)
20
+ set_remember_me_cookie!(current_user)
21
21
  end
22
22
 
23
23
  # Clears the cookie and clears the token from the db.
24
24
  def forget_me!
25
25
  @current_user.forget_me!
26
- cookies[:remember_me_token] = nil
26
+ cookies.delete(:remember_me_token, :domain => Config.cookie_domain)
27
27
  end
28
-
28
+
29
29
  # Override.
30
30
  # logins a user instance, and optionally remembers him.
31
31
  def auto_login(user, should_remember = false)
@@ -33,31 +33,32 @@ module Sorcery
33
33
  @current_user = user
34
34
  remember_me! if should_remember
35
35
  end
36
-
36
+
37
37
  protected
38
-
38
+
39
39
  # calls remember_me! if a third credential was passed to the login method.
40
40
  # Runs as a hook after login.
41
41
  def remember_me_if_asked_to(user, credentials)
42
42
  remember_me! if ( credentials.size == 3 && credentials[2] && credentials[2] != "0" )
43
43
  end
44
-
45
- # Checks the cookie for a remember me token, tried to find a user with that token
44
+
45
+ # Checks the cookie for a remember me token, tried to find a user with that token
46
46
  # and logs the user in if found.
47
47
  # Runs as a login source. See 'current_user' method for how it is used.
48
48
  def login_from_cookie
49
49
  user = cookies.signed[:remember_me_token] && user_class.find_by_remember_me_token(cookies.signed[:remember_me_token])
50
50
  if user && user.remember_me_token?
51
51
  set_remember_me_cookie!(user)
52
+ session[:user_id] = user.id
52
53
  @current_user = user
53
54
  else
54
55
  @current_user = false
55
56
  end
56
57
  end
57
-
58
+
58
59
  def set_remember_me_cookie!(user)
59
- cookies.signed[:remember_me_token] = {
60
- :value => user.send(user.sorcery_config.remember_me_token_attribute_name),
60
+ cookies.signed[:remember_me_token] = {
61
+ :value => user.send(user.sorcery_config.remember_me_token_attribute_name),
61
62
  :expires => user.send(user.sorcery_config.remember_me_token_expires_at_attribute_name),
62
63
  :httponly => true,
63
64
  :domain => Config.cookie_domain
@@ -30,18 +30,18 @@ module Sorcery
30
30
  # Registers last login to be used as the timeout starting point.
31
31
  # Runs as a hook after a successful login.
32
32
  def register_login_time(user, credentials)
33
- session[:login_time] = session[:last_action_time] = Time.now.utc
33
+ session[:login_time] = session[:last_action_time] = Time.now.in_time_zone
34
34
  end
35
35
 
36
36
  # Checks if session timeout was reached and expires the current session if so.
37
37
  # To be used as a before_filter, before require_login
38
38
  def validate_session
39
39
  session_to_use = Config.session_timeout_from_last_action ? session[:last_action_time] : session[:login_time]
40
- if session_to_use && (Time.now.utc - session_to_use > Config.session_timeout)
40
+ if session_to_use && (Time.now.in_time_zone - session_to_use > Config.session_timeout)
41
41
  reset_session
42
42
  @current_user = nil
43
43
  else
44
- session[:last_action_time] = Time.now.utc
44
+ session[:last_action_time] = Time.now.in_time_zone
45
45
  end
46
46
  end
47
47
 
@@ -54,7 +54,7 @@ module Sorcery
54
54
  config = sorcery_config
55
55
  return if !unlocked?
56
56
  self.increment(config.failed_logins_count_attribute_name)
57
- save!
57
+ save!(:validate => false)
58
58
  self.lock! if self.send(config.failed_logins_count_attribute_name) >= config.consecutive_login_retries_amount_limit
59
59
  end
60
60
 
@@ -62,15 +62,15 @@ module Sorcery
62
62
 
63
63
  def lock!
64
64
  config = sorcery_config
65
- self.send(:"#{config.lock_expires_at_attribute_name}=", Time.now.utc + config.login_lock_time_period)
66
- self.save!
65
+ self.send(:"#{config.lock_expires_at_attribute_name}=", Time.now.in_time_zone + config.login_lock_time_period)
66
+ self.save!(validate: false)
67
67
  end
68
68
 
69
69
  def unlock!
70
70
  config = sorcery_config
71
71
  self.send(:"#{config.lock_expires_at_attribute_name}=", nil)
72
72
  self.send(:"#{config.failed_logins_count_attribute_name}=", 0)
73
- self.save!
73
+ self.save!(validate: false)
74
74
  end
75
75
 
76
76
  def unlocked?
@@ -83,7 +83,7 @@ module Sorcery
83
83
  def prevent_locked_user_login
84
84
  config = sorcery_config
85
85
  if !self.unlocked? && config.login_lock_time_period != 0
86
- self.unlock! if self.send(config.lock_expires_at_attribute_name) <= Time.now.utc
86
+ self.unlock! if self.send(config.lock_expires_at_attribute_name) <= Time.now.in_time_zone
87
87
  end
88
88
  unlocked?
89
89
  end
@@ -91,4 +91,4 @@ module Sorcery
91
91
  end
92
92
  end
93
93
  end
94
- end
94
+ end
@@ -50,7 +50,7 @@ module Sorcery
50
50
  def remember_me!
51
51
  config = sorcery_config
52
52
  self.send(:"#{config.remember_me_token_attribute_name}=", TemporaryToken.generate_random_token)
53
- self.send(:"#{config.remember_me_token_expires_at_attribute_name}=", Time.now + config.remember_me_for)
53
+ self.send(:"#{config.remember_me_token_expires_at_attribute_name}=", Time.now.in_time_zone + config.remember_me_for)
54
54
  self.save!(:validate => false)
55
55
  end
56
56
 
@@ -91,8 +91,8 @@ module Sorcery
91
91
  # hammering protection
92
92
  return if config.reset_password_time_between_emails && self.send(config.reset_password_email_sent_at_attribute_name) && self.send(config.reset_password_email_sent_at_attribute_name) > config.reset_password_time_between_emails.ago.utc
93
93
  self.send(:"#{config.reset_password_token_attribute_name}=", TemporaryToken.generate_random_token)
94
- self.send(:"#{config.reset_password_token_expires_at_attribute_name}=", Time.now.utc + config.reset_password_expiration_period) if config.reset_password_expiration_period
95
- self.send(:"#{config.reset_password_email_sent_at_attribute_name}=", Time.now.utc)
94
+ self.send(:"#{config.reset_password_token_expires_at_attribute_name}=", Time.now.in_time_zone + config.reset_password_expiration_period) if config.reset_password_expiration_period
95
+ self.send(:"#{config.reset_password_email_sent_at_attribute_name}=", Time.now.in_time_zone)
96
96
  self.class.transaction do
97
97
  self.save!(:validate => false)
98
98
  generic_send_email(:reset_password_email_method_name, :reset_password_mailer)
@@ -115,7 +115,7 @@ module Sorcery
115
115
  generated_activation_token = TemporaryToken.generate_random_token
116
116
  self.send(:"#{config.activation_token_attribute_name}=", generated_activation_token)
117
117
  self.send(:"#{config.activation_state_attribute_name}=", "pending")
118
- self.send(:"#{config.activation_token_expires_at_attribute_name}=", Time.now.utc + config.activation_token_expiration_period) if config.activation_token_expiration_period
118
+ self.send(:"#{config.activation_token_expires_at_attribute_name}=", Time.now.in_time_zone + config.activation_token_expiration_period) if config.activation_token_expiration_period
119
119
  end
120
120
 
121
121
  # called automatically after user initial creation.
@@ -1,3 +1,5 @@
1
+ require 'securerandom'
2
+
1
3
  module Sorcery
2
4
  module Model
3
5
  # This module encapsulates the logic for temporary token.
@@ -10,7 +12,7 @@ module Sorcery
10
12
 
11
13
  # Random code, used for salt and temporary tokens.
12
14
  def self.generate_random_token
13
- Digest::SHA1.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join )
15
+ SecureRandom.base64(15).tr('+/=lIO0', 'pqrsxyz')
14
16
  end
15
17
 
16
18
  module ClassMethods
@@ -18,7 +20,7 @@ module Sorcery
18
20
  return nil if token.blank?
19
21
  user = find_by_sorcery_token(token_attr_name,token)
20
22
  if !user.blank? && !user.send(token_expiration_date_attr).nil?
21
- return Time.now.utc < user.send(token_expiration_date_attr) ? user : nil
23
+ return Time.now.in_time_zone < user.send(token_expiration_date_attr) ? user : nil
22
24
  end
23
25
  user
24
26
  end
data/sorcery.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "sorcery"
8
- s.version = "0.7.2"
8
+ s.version = "0.7.3"
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 = "2011-10-22"
12
+ s.date = "2011-10-29"
13
13
  s.description = "Provides common authentication needs such as signing in/out, activating by email and resetting password."
14
14
  s.email = "nbenari@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -307,11 +307,8 @@ Gem::Specification.new do |s|
307
307
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
308
308
  s.add_runtime_dependency(%q<oauth>, ["~> 0.4.4"])
309
309
  s.add_runtime_dependency(%q<oauth2>, ["~> 0.4.1"])
310
- s.add_runtime_dependency(%q<mongo_mapper>, [">= 0"])
311
310
  s.add_development_dependency(%q<rails>, [">= 3.0.0"])
312
311
  s.add_development_dependency(%q<json>, [">= 1.5.1"])
313
- s.add_development_dependency(%q<mongoid>, ["~> 2.0"])
314
- s.add_development_dependency(%q<bson_ext>, ["~> 1.3"])
315
312
  s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
316
313
  s.add_development_dependency(%q<rspec-rails>, ["~> 2.5.0"])
317
314
  s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
@@ -327,11 +324,8 @@ Gem::Specification.new do |s|
327
324
  else
328
325
  s.add_dependency(%q<oauth>, ["~> 0.4.4"])
329
326
  s.add_dependency(%q<oauth2>, ["~> 0.4.1"])
330
- s.add_dependency(%q<mongo_mapper>, [">= 0"])
331
327
  s.add_dependency(%q<rails>, [">= 3.0.0"])
332
328
  s.add_dependency(%q<json>, [">= 1.5.1"])
333
- s.add_dependency(%q<mongoid>, ["~> 2.0"])
334
- s.add_dependency(%q<bson_ext>, ["~> 1.3"])
335
329
  s.add_dependency(%q<rspec>, ["~> 2.5.0"])
336
330
  s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
337
331
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
@@ -348,11 +342,8 @@ Gem::Specification.new do |s|
348
342
  else
349
343
  s.add_dependency(%q<oauth>, ["~> 0.4.4"])
350
344
  s.add_dependency(%q<oauth2>, ["~> 0.4.1"])
351
- s.add_dependency(%q<mongo_mapper>, [">= 0"])
352
345
  s.add_dependency(%q<rails>, [">= 3.0.0"])
353
346
  s.add_dependency(%q<json>, [">= 1.5.1"])
354
- s.add_dependency(%q<mongoid>, ["~> 2.0"])
355
- s.add_dependency(%q<bson_ext>, ["~> 1.3"])
356
347
  s.add_dependency(%q<rspec>, ["~> 2.5.0"])
357
348
  s.add_dependency(%q<rspec-rails>, ["~> 2.5.0"])
358
349
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
data/spec/Gemfile.lock CHANGED
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- sorcery (0.7.1)
4
+ sorcery (0.7.2)
5
5
  bcrypt-ruby (~> 3.0.0)
6
- mongo_mapper
7
6
  oauth (~> 0.4.4)
8
7
  oauth (~> 0.4.4)
9
8
  oauth2 (~> 0.4.1)
@@ -43,7 +42,6 @@ GEM
43
42
  archive-tar-minitar (0.5.2)
44
43
  arel (2.0.10)
45
44
  bcrypt-ruby (3.0.1)
46
- bson (1.4.1)
47
45
  builder (2.1.2)
48
46
  columnize (0.3.4)
49
47
  diff-lcs (1.1.3)
@@ -61,21 +59,13 @@ GEM
61
59
  i18n (>= 0.4.0)
62
60
  mime-types (~> 1.16)
63
61
  treetop (~> 1.4.8)
64
- mime-types (1.16)
65
- mongo (1.4.1)
66
- bson (= 1.4.1)
67
- mongo_mapper (0.9.2)
68
- activemodel (~> 3.0)
69
- activesupport (~> 3.0)
70
- plucky (~> 0.3.8)
62
+ mime-types (1.17.2)
71
63
  multi_json (1.0.3)
72
64
  multipart-post (1.1.3)
73
65
  oauth (0.4.5)
74
66
  oauth2 (0.4.1)
75
67
  faraday (~> 0.6.1)
76
68
  multi_json (>= 0.0.5)
77
- plucky (0.3.8)
78
- mongo (~> 1.3)
79
69
  polyglot (0.3.2)
80
70
  rack (1.2.4)
81
71
  rack-mount (0.6.14)
@@ -95,7 +85,7 @@ GEM
95
85
  activesupport (= 3.0.3)
96
86
  rake (>= 0.8.7)
97
87
  thor (~> 0.14.4)
98
- rake (0.9.2)
88
+ rake (0.9.2.2)
99
89
  rspec (2.5.0)
100
90
  rspec-core (~> 2.5.0)
101
91
  rspec-expectations (~> 2.5.0)
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: ../../
3
3
  specs:
4
- sorcery (0.7.1)
4
+ sorcery (0.7.2)
5
5
  bcrypt-ruby (~> 3.0.0)
6
- mongo_mapper
7
6
  oauth (~> 0.4.4)
8
7
  oauth (~> 0.4.4)
9
8
  oauth2 (~> 0.4.1)
@@ -43,7 +42,6 @@ GEM
43
42
  archive-tar-minitar (0.5.2)
44
43
  arel (2.0.10)
45
44
  bcrypt-ruby (3.0.1)
46
- bson (1.4.1)
47
45
  builder (2.1.2)
48
46
  columnize (0.3.4)
49
47
  diff-lcs (1.1.3)
@@ -63,21 +61,13 @@ GEM
63
61
  i18n (>= 0.4.0)
64
62
  mime-types (~> 1.16)
65
63
  treetop (~> 1.4.8)
66
- mime-types (1.16)
67
- mongo (1.4.1)
68
- bson (= 1.4.1)
69
- mongo_mapper (0.9.2)
70
- activemodel (~> 3.0)
71
- activesupport (~> 3.0)
72
- plucky (~> 0.3.8)
64
+ mime-types (1.17.2)
73
65
  multi_json (1.0.3)
74
66
  multipart-post (1.1.3)
75
67
  oauth (0.4.5)
76
68
  oauth2 (0.4.1)
77
69
  faraday (~> 0.6.1)
78
70
  multi_json (>= 0.0.5)
79
- plucky (0.3.8)
80
- mongo (~> 1.3)
81
71
  polyglot (0.3.2)
82
72
  rack (1.2.4)
83
73
  rack-mount (0.6.14)
@@ -97,7 +87,7 @@ GEM
97
87
  activesupport (= 3.0.3)
98
88
  rake (>= 0.8.7)
99
89
  thor (~> 0.14.4)
100
- rake (0.9.2)
90
+ rake (0.9.2.2)
101
91
  rspec (2.5.0)
102
92
  rspec-core (~> 2.5.0)
103
93
  rspec-expectations (~> 2.5.0)
@@ -30,7 +30,7 @@ describe ApplicationController do
30
30
  end
31
31
 
32
32
  it "should log login time on login" do
33
- now = Time.now.utc
33
+ now = Time.now.in_time_zone
34
34
  login_user
35
35
  @user.last_login_at.should_not be_nil
36
36
  @user.last_login_at.to_s(:db).should >= now.to_s(:db)
@@ -39,7 +39,7 @@ describe ApplicationController do
39
39
 
40
40
  it "should log logout time on logout" do
41
41
  login_user
42
- now = Time.now.utc
42
+ now = Time.now.in_time_zone
43
43
  logout_user
44
44
  User.first.last_logout_at.should_not be_nil
45
45
  User.first.last_logout_at.to_s(:db).should >= now.to_s(:db)
@@ -48,7 +48,7 @@ describe ApplicationController do
48
48
 
49
49
  it "should log last activity time when logged in" do
50
50
  login_user
51
- now = Time.now.utc
51
+ now = Time.now.in_time_zone
52
52
  get :some_action
53
53
  User.first.last_activity_at.to_s(:db).should >= now.to_s(:db)
54
54
  User.first.last_activity_at.to_s(:db).should <= (now+2).to_s(:db)
@@ -81,14 +81,14 @@ describe ApplicationController do
81
81
 
82
82
  it "should not register login time if configured so" do
83
83
  sorcery_controller_property_set(:register_login_time, false)
84
- now = Time.now.utc
84
+ now = Time.now.in_time_zone
85
85
  login_user
86
86
  @user.last_login_at.should be_nil
87
87
  end
88
88
 
89
89
  it "should not register logout time if configured so" do
90
90
  sorcery_controller_property_set(:register_logout_time, false)
91
- now = Time.now.utc
91
+ now = Time.now.in_time_zone
92
92
  login_user
93
93
  logout_user
94
94
  @user.last_logout_at.should be_nil
@@ -96,7 +96,7 @@ describe ApplicationController do
96
96
 
97
97
  it "should not register last activity time if configured so" do
98
98
  sorcery_controller_property_set(:register_last_activity_time, false)
99
- now = Time.now.utc
99
+ now = Time.now.in_time_zone
100
100
  login_user
101
101
  get :some_action
102
102
  @user.last_activity_at.should be_nil
@@ -47,7 +47,7 @@ describe ApplicationController do
47
47
  get :test_login, :username => 'gizmo', :password => 'blabla'
48
48
  get :test_login, :username => 'gizmo', :password => 'blabla'
49
49
  User.find_by_username('gizmo').lock_expires_at.should_not be_nil
50
- Timecop.travel(Time.now + 0.3)
50
+ Timecop.travel(Time.now.in_time_zone + 0.3)
51
51
  get :test_login, :username => 'gizmo', :password => 'blabla'
52
52
  User.find_by_username('gizmo').lock_expires_at.should be_nil
53
53
  end
@@ -58,7 +58,7 @@ describe ApplicationController do
58
58
  get :test_login, :username => 'gizmo', :password => 'blabla'
59
59
  get :test_login, :username => 'gizmo', :password => 'blabla'
60
60
  unlock_date = User.find_by_username('gizmo').lock_expires_at
61
- Timecop.travel(Time.now + 1)
61
+ Timecop.travel(Time.now.in_time_zone + 1)
62
62
  get :test_login, :username => 'gizmo', :password => 'blabla'
63
63
  User.find_by_username('gizmo').lock_expires_at.to_s.should == unlock_date.to_s
64
64
  end
@@ -23,7 +23,7 @@ describe ApplicationController do
23
23
 
24
24
  it "should reset session after session timeout" do
25
25
  login_user
26
- Timecop.travel(Time.now+0.6)
26
+ Timecop.travel(Time.now.in_time_zone+0.6)
27
27
  get :test_should_be_logged_in
28
28
  session[:user_id].should be_nil
29
29
  response.should be_a_redirect
@@ -33,10 +33,10 @@ describe ApplicationController do
33
33
  it "should not logout if there was activity" do
34
34
  sorcery_controller_property_set(:session_timeout_from_last_action, true)
35
35
  get :test_login, :username => 'gizmo', :password => 'secret'
36
- Timecop.travel(Time.now+0.3)
36
+ Timecop.travel(Time.now.in_time_zone+0.3)
37
37
  get :test_should_be_logged_in
38
38
  session[:user_id].should_not be_nil
39
- Timecop.travel(Time.now+0.3)
39
+ Timecop.travel(Time.now.in_time_zone+0.3)
40
40
  get :test_should_be_logged_in
41
41
  session[:user_id].should_not be_nil
42
42
  response.should be_a_success
@@ -45,7 +45,7 @@ describe ApplicationController do
45
45
  it "with 'session_timeout_from_last_action' should logout if there was no activity" do
46
46
  sorcery_controller_property_set(:session_timeout_from_last_action, true)
47
47
  get :test_login, :username => 'gizmo', :password => 'secret'
48
- Timecop.travel(Time.now+0.6)
48
+ Timecop.travel(Time.now.in_time_zone+0.6)
49
49
  get :test_should_be_logged_in
50
50
  session[:user_id].should be_nil
51
51
  response.should be_a_redirect
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: ../../
3
3
  specs:
4
- sorcery (0.7.1)
4
+ sorcery (0.7.2)
5
5
  bcrypt-ruby (~> 3.0.0)
6
- mongo_mapper
7
6
  oauth (~> 0.4.4)
8
7
  oauth (~> 0.4.4)
9
8
  oauth2 (~> 0.4.1)
@@ -43,8 +42,8 @@ GEM
43
42
  archive-tar-minitar (0.5.2)
44
43
  arel (2.0.10)
45
44
  bcrypt-ruby (3.0.1)
46
- bson (1.4.1)
47
- bson_ext (1.4.1)
45
+ bson (1.3.1)
46
+ bson_ext (1.3.1)
48
47
  builder (2.1.2)
49
48
  coderay (0.9.8)
50
49
  columnize (0.3.4)
@@ -63,11 +62,11 @@ GEM
63
62
  i18n (>= 0.4.0)
64
63
  mime-types (~> 1.16)
65
64
  treetop (~> 1.4.8)
66
- method_source (0.6.6)
67
- ruby_parser (~> 2.0.5)
68
- mime-types (1.16)
69
- mongo (1.4.1)
70
- bson (= 1.4.1)
65
+ method_source (0.6.7)
66
+ ruby_parser (>= 2.3.1)
67
+ mime-types (1.17.2)
68
+ mongo (1.3.1)
69
+ bson (>= 1.3.1)
71
70
  mongo_mapper (0.9.2)
72
71
  activemodel (~> 3.0)
73
72
  activesupport (~> 3.0)
@@ -81,10 +80,10 @@ GEM
81
80
  plucky (0.3.8)
82
81
  mongo (~> 1.3)
83
82
  polyglot (0.3.2)
84
- pry (0.9.6.2)
83
+ pry (0.9.7.3)
85
84
  coderay (~> 0.9.8)
86
- method_source (~> 0.6.5)
87
- ruby_parser (~> 2.0.5)
85
+ method_source (~> 0.6.7)
86
+ ruby_parser (>= 2.3.1)
88
87
  slop (~> 2.1.0)
89
88
  rack (1.2.4)
90
89
  rack-mount (0.6.14)
@@ -104,7 +103,7 @@ GEM
104
103
  activesupport (= 3.0.3)
105
104
  rake (>= 0.8.7)
106
105
  thor (~> 0.14.4)
107
- rake (0.9.2)
106
+ rake (0.9.2.2)
108
107
  rspec (2.5.0)
109
108
  rspec-core (~> 2.5.0)
110
109
  rspec-expectations (~> 2.5.0)
@@ -128,7 +127,7 @@ GEM
128
127
  ruby-debug-base19 (>= 0.11.19)
129
128
  ruby_core_source (0.1.5)
130
129
  archive-tar-minitar (>= 0.5.2)
131
- ruby_parser (2.0.6)
130
+ ruby_parser (2.3.1)
132
131
  sexp_processor (~> 3.0)
133
132
  sexp_processor (3.0.7)
134
133
  simplecov (0.5.4)
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: ../../
3
3
  specs:
4
- sorcery (0.7.1)
4
+ sorcery (0.7.2)
5
5
  bcrypt-ruby (~> 3.0.0)
6
- mongo_mapper
7
6
  oauth (~> 0.4.4)
8
7
  oauth (~> 0.4.4)
9
8
  oauth2 (~> 0.4.1)
@@ -43,8 +42,8 @@ GEM
43
42
  archive-tar-minitar (0.5.2)
44
43
  arel (2.0.10)
45
44
  bcrypt-ruby (3.0.1)
46
- bson (1.4.1)
47
- bson_ext (1.4.1)
45
+ bson (1.3.1)
46
+ bson_ext (1.3.1)
48
47
  builder (2.1.2)
49
48
  columnize (0.3.4)
50
49
  diff-lcs (1.1.3)
@@ -62,13 +61,9 @@ GEM
62
61
  i18n (>= 0.4.0)
63
62
  mime-types (~> 1.16)
64
63
  treetop (~> 1.4.8)
65
- mime-types (1.16)
66
- mongo (1.4.1)
67
- bson (= 1.4.1)
68
- mongo_mapper (0.9.2)
69
- activemodel (~> 3.0)
70
- activesupport (~> 3.0)
71
- plucky (~> 0.3.8)
64
+ mime-types (1.17.2)
65
+ mongo (1.3.1)
66
+ bson (>= 1.3.1)
72
67
  mongoid (2.2.3)
73
68
  activemodel (~> 3.0)
74
69
  mongo (~> 1.3)
@@ -79,8 +74,6 @@ GEM
79
74
  oauth2 (0.4.1)
80
75
  faraday (~> 0.6.1)
81
76
  multi_json (>= 0.0.5)
82
- plucky (0.3.8)
83
- mongo (~> 1.3)
84
77
  polyglot (0.3.2)
85
78
  rack (1.2.4)
86
79
  rack-mount (0.6.14)
@@ -100,7 +93,7 @@ GEM
100
93
  activesupport (= 3.0.3)
101
94
  rake (>= 0.8.7)
102
95
  thor (~> 0.14.4)
103
- rake (0.9.2)
96
+ rake (0.9.2.2)
104
97
  rspec (2.5.0)
105
98
  rspec-core (~> 2.5.0)
106
99
  rspec-expectations (~> 2.5.0)
@@ -23,7 +23,7 @@ describe ApplicationController do
23
23
  end
24
24
 
25
25
  it "should log login time on login" do
26
- now = Time.now.utc
26
+ now = Time.now.in_time_zone
27
27
  login_user
28
28
  @user.last_login_at.should_not be_nil
29
29
  @user.last_login_at.to_s(:db).should >= now.to_s(:db)
@@ -32,7 +32,7 @@ describe ApplicationController do
32
32
 
33
33
  it "should log logout time on logout" do
34
34
  login_user
35
- now = Time.now.utc
35
+ now = Time.now.in_time_zone
36
36
  logout_user
37
37
  User.first.last_logout_at.should_not be_nil
38
38
  User.first.last_logout_at.to_s(:db).should >= now.to_s(:db)
@@ -41,7 +41,7 @@ describe ApplicationController do
41
41
 
42
42
  it "should log last activity time when logged in" do
43
43
  login_user
44
- now = Time.now.utc
44
+ now = Time.now.in_time_zone
45
45
  get :some_action
46
46
  User.first.last_activity_at.to_s(:db).should >= now.to_s(:db)
47
47
  User.first.last_activity_at.to_s(:db).should <= (now+2).to_s(:db)
@@ -74,14 +74,14 @@ describe ApplicationController do
74
74
 
75
75
  it "should not register login time if configured so" do
76
76
  sorcery_controller_property_set(:register_login_time, false)
77
- now = Time.now.utc
77
+ now = Time.now.in_time_zone
78
78
  login_user
79
79
  @user.last_login_at.should be_nil
80
80
  end
81
81
 
82
82
  it "should not register logout time if configured so" do
83
83
  sorcery_controller_property_set(:register_logout_time, false)
84
- now = Time.now.utc
84
+ now = Time.now.in_time_zone
85
85
  login_user
86
86
  logout_user
87
87
  @user.last_logout_at.should be_nil
@@ -89,7 +89,7 @@ describe ApplicationController do
89
89
 
90
90
  it "should not register last activity time if configured so" do
91
91
  sorcery_controller_property_set(:register_last_activity_time, false)
92
- now = Time.now.utc
92
+ now = Time.now.in_time_zone
93
93
  login_user
94
94
  get :some_action
95
95
  @user.last_activity_at.should be_nil
@@ -155,7 +155,7 @@ shared_examples_for "rails_3_activation_model" do
155
155
  it "load_from_activation_token should NOT return user when token is found and expired" do
156
156
  sorcery_model_property_set(:activation_token_expiration_period, 0.1)
157
157
  create_new_user
158
- Timecop.travel(Time.now+0.5)
158
+ Timecop.travel(Time.now.in_time_zone+0.5)
159
159
  User.load_from_activation_token(@user.activation_token).should == nil
160
160
  end
161
161
 
@@ -34,7 +34,7 @@ shared_examples_for "rails_3_remember_me_model" do
34
34
  it "should set an expiration based on 'remember_me_for' attribute" do
35
35
  sorcery_model_property_set(:remember_me_for, 2 * 60 * 60 * 24)
36
36
  @user.remember_me!
37
- @user.remember_me_token_expires_at.utc.to_s.should == (Time.now + 2 * 60 * 60 * 24).utc.to_s
37
+ @user.remember_me_token_expires_at.utc.to_s.should == (Time.now.in_time_zone + 2 * 60 * 60 * 24).utc.to_s
38
38
  end
39
39
 
40
40
  it "should delete the token and expiration on 'forget_me!'" do
@@ -93,7 +93,7 @@ shared_examples_for "rails_3_reset_password_model" do
93
93
  create_new_user
94
94
  sorcery_model_property_set(:reset_password_expiration_period, 0.1)
95
95
  @user.deliver_reset_password_instructions!
96
- Timecop.travel(Time.now+0.5)
96
+ Timecop.travel(Time.now.in_time_zone+0.5)
97
97
  User.load_from_reset_password_token(@user.reset_password_token).should == nil
98
98
  end
99
99
 
@@ -157,7 +157,7 @@ shared_examples_for "rails_3_reset_password_model" do
157
157
  old_size = ActionMailer::Base.deliveries.size
158
158
  @user.deliver_reset_password_instructions!
159
159
  ActionMailer::Base.deliveries.size.should == old_size + 1
160
- Timecop.travel(Time.now+0.5)
160
+ Timecop.travel(Time.now.in_time_zone+0.5)
161
161
  @user.deliver_reset_password_instructions!
162
162
  ActionMailer::Base.deliveries.size.should == old_size + 2
163
163
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sorcery
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.2
5
+ version: 0.7.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Noam Ben Ari
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-10-22 00:00:00 Z
13
+ date: 2011-10-29 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: oauth
@@ -34,20 +34,9 @@ dependencies:
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: mongo_mapper
39
- requirement: &id003 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- version: "0"
45
- type: :runtime
46
- prerelease: false
47
- version_requirements: *id003
48
37
  - !ruby/object:Gem::Dependency
49
38
  name: rails
50
- requirement: &id004 !ruby/object:Gem::Requirement
39
+ requirement: &id003 !ruby/object:Gem::Requirement
51
40
  none: false
52
41
  requirements:
53
42
  - - ">="
@@ -55,10 +44,10 @@ dependencies:
55
44
  version: 3.0.0
56
45
  type: :development
57
46
  prerelease: false
58
- version_requirements: *id004
47
+ version_requirements: *id003
59
48
  - !ruby/object:Gem::Dependency
60
49
  name: json
61
- requirement: &id005 !ruby/object:Gem::Requirement
50
+ requirement: &id004 !ruby/object:Gem::Requirement
62
51
  none: false
63
52
  requirements:
64
53
  - - ">="
@@ -66,32 +55,10 @@ dependencies:
66
55
  version: 1.5.1
67
56
  type: :development
68
57
  prerelease: false
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: mongoid
72
- requirement: &id006 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: "2.0"
78
- type: :development
79
- prerelease: false
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
82
- name: bson_ext
83
- requirement: &id007 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ~>
87
- - !ruby/object:Gem::Version
88
- version: "1.3"
89
- type: :development
90
- prerelease: false
91
- version_requirements: *id007
58
+ version_requirements: *id004
92
59
  - !ruby/object:Gem::Dependency
93
60
  name: rspec
94
- requirement: &id008 !ruby/object:Gem::Requirement
61
+ requirement: &id005 !ruby/object:Gem::Requirement
95
62
  none: false
96
63
  requirements:
97
64
  - - ~>
@@ -99,10 +66,10 @@ dependencies:
99
66
  version: 2.5.0
100
67
  type: :development
101
68
  prerelease: false
102
- version_requirements: *id008
69
+ version_requirements: *id005
103
70
  - !ruby/object:Gem::Dependency
104
71
  name: rspec-rails
105
- requirement: &id009 !ruby/object:Gem::Requirement
72
+ requirement: &id006 !ruby/object:Gem::Requirement
106
73
  none: false
107
74
  requirements:
108
75
  - - ~>
@@ -110,10 +77,10 @@ dependencies:
110
77
  version: 2.5.0
111
78
  type: :development
112
79
  prerelease: false
113
- version_requirements: *id009
80
+ version_requirements: *id006
114
81
  - !ruby/object:Gem::Dependency
115
82
  name: ruby-debug19
116
- requirement: &id010 !ruby/object:Gem::Requirement
83
+ requirement: &id007 !ruby/object:Gem::Requirement
117
84
  none: false
118
85
  requirements:
119
86
  - - ">="
@@ -121,10 +88,10 @@ dependencies:
121
88
  version: "0"
122
89
  type: :development
123
90
  prerelease: false
124
- version_requirements: *id010
91
+ version_requirements: *id007
125
92
  - !ruby/object:Gem::Dependency
126
93
  name: sqlite3-ruby
127
- requirement: &id011 !ruby/object:Gem::Requirement
94
+ requirement: &id008 !ruby/object:Gem::Requirement
128
95
  none: false
129
96
  requirements:
130
97
  - - ">="
@@ -132,10 +99,10 @@ dependencies:
132
99
  version: "0"
133
100
  type: :development
134
101
  prerelease: false
135
- version_requirements: *id011
102
+ version_requirements: *id008
136
103
  - !ruby/object:Gem::Dependency
137
104
  name: yard
138
- requirement: &id012 !ruby/object:Gem::Requirement
105
+ requirement: &id009 !ruby/object:Gem::Requirement
139
106
  none: false
140
107
  requirements:
141
108
  - - ~>
@@ -143,10 +110,10 @@ dependencies:
143
110
  version: 0.6.0
144
111
  type: :development
145
112
  prerelease: false
146
- version_requirements: *id012
113
+ version_requirements: *id009
147
114
  - !ruby/object:Gem::Dependency
148
115
  name: bundler
149
- requirement: &id013 !ruby/object:Gem::Requirement
116
+ requirement: &id010 !ruby/object:Gem::Requirement
150
117
  none: false
151
118
  requirements:
152
119
  - - ~>
@@ -154,10 +121,10 @@ dependencies:
154
121
  version: 1.0.0
155
122
  type: :development
156
123
  prerelease: false
157
- version_requirements: *id013
124
+ version_requirements: *id010
158
125
  - !ruby/object:Gem::Dependency
159
126
  name: jeweler
160
- requirement: &id014 !ruby/object:Gem::Requirement
127
+ requirement: &id011 !ruby/object:Gem::Requirement
161
128
  none: false
162
129
  requirements:
163
130
  - - ~>
@@ -165,10 +132,10 @@ dependencies:
165
132
  version: 1.5.2
166
133
  type: :development
167
134
  prerelease: false
168
- version_requirements: *id014
135
+ version_requirements: *id011
169
136
  - !ruby/object:Gem::Dependency
170
137
  name: simplecov
171
- requirement: &id015 !ruby/object:Gem::Requirement
138
+ requirement: &id012 !ruby/object:Gem::Requirement
172
139
  none: false
173
140
  requirements:
174
141
  - - ">="
@@ -176,10 +143,10 @@ dependencies:
176
143
  version: 0.3.8
177
144
  type: :development
178
145
  prerelease: false
179
- version_requirements: *id015
146
+ version_requirements: *id012
180
147
  - !ruby/object:Gem::Dependency
181
148
  name: timecop
182
- requirement: &id016 !ruby/object:Gem::Requirement
149
+ requirement: &id013 !ruby/object:Gem::Requirement
183
150
  none: false
184
151
  requirements:
185
152
  - - ">="
@@ -187,10 +154,10 @@ dependencies:
187
154
  version: "0"
188
155
  type: :development
189
156
  prerelease: false
190
- version_requirements: *id016
157
+ version_requirements: *id013
191
158
  - !ruby/object:Gem::Dependency
192
159
  name: bcrypt-ruby
193
- requirement: &id017 !ruby/object:Gem::Requirement
160
+ requirement: &id014 !ruby/object:Gem::Requirement
194
161
  none: false
195
162
  requirements:
196
163
  - - ~>
@@ -198,10 +165,10 @@ dependencies:
198
165
  version: 3.0.0
199
166
  type: :runtime
200
167
  prerelease: false
201
- version_requirements: *id017
168
+ version_requirements: *id014
202
169
  - !ruby/object:Gem::Dependency
203
170
  name: oauth
204
- requirement: &id018 !ruby/object:Gem::Requirement
171
+ requirement: &id015 !ruby/object:Gem::Requirement
205
172
  none: false
206
173
  requirements:
207
174
  - - ~>
@@ -209,10 +176,10 @@ dependencies:
209
176
  version: 0.4.4
210
177
  type: :runtime
211
178
  prerelease: false
212
- version_requirements: *id018
179
+ version_requirements: *id015
213
180
  - !ruby/object:Gem::Dependency
214
181
  name: oauth2
215
- requirement: &id019 !ruby/object:Gem::Requirement
182
+ requirement: &id016 !ruby/object:Gem::Requirement
216
183
  none: false
217
184
  requirements:
218
185
  - - ~>
@@ -220,7 +187,7 @@ dependencies:
220
187
  version: 0.4.1
221
188
  type: :runtime
222
189
  prerelease: false
223
- version_requirements: *id019
190
+ version_requirements: *id016
224
191
  description: Provides common authentication needs such as signing in/out, activating by email and resetting password.
225
192
  email: nbenari@gmail.com
226
193
  executables: []