signinable 2.0.7 → 2.0.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1da8211a792e1ff4e21a506ec01c0cad70f7d14
4
- data.tar.gz: 5d1f20a9cadf7025aab7065dcac924902471d357
3
+ metadata.gz: c6aedbf478d474ba1c4eaea564eb5923f447d014
4
+ data.tar.gz: 1e679b63fc9ffc805c4ed762db8d56accf7d0bd5
5
5
  SHA512:
6
- metadata.gz: 0a3c80990d4226d94cf73312230d08244b0937fced1f31c6bcfb0f4983161b6c29defab4b89ace141e42f2d6ad4903c88dac8a7ea98846ce3839a3d7944ab7ea
7
- data.tar.gz: 795347736ef5aaeaa425eed3b086265add239d3847ced59bc1170445b4136ad9f97f6e809f550fd99eee4fc389ba15c80d4ba628b41c798942b5d7e7d00472b2
6
+ metadata.gz: 7da61b67ae30e1a09e5f023b30b7a757485e5ed72fa97b6eb2b0ada32986e75efa4c822a173dc796b47fbd9d27cc4410ece7fcf7638402515c86bf0d4fd478a3
7
+ data.tar.gz: 758f8ac930b49ade4264a7d9084d62104a1b700a80ba7e681c0c17a330aa6f9255fd467840a77b3fe31a2b45f2decb82307f6214093d9b8b004e8711a1380878
@@ -14,7 +14,7 @@ module Signinable
14
14
  has_many :signins, as: :signinable, dependent: :destroy
15
15
  end
16
16
 
17
- def authenticate_with_token(token, ip, user_agent)
17
+ def authenticate_with_token(token, ip, user_agent, skip_restrictions=[])
18
18
  if(signin = Signin.find_by_token(token))
19
19
  if self.signin_expiration.respond_to?(:call)
20
20
  self.signin_expiration = self.signin_expiration.call(signin.signinable)
@@ -28,18 +28,18 @@ module Signinable
28
28
  return nil unless signin == signin.signinable.last_signin
29
29
  end
30
30
 
31
- return nil unless self.check_signin_permission(signin, ip, user_agent)
31
+ return nil unless self.check_signin_permission(signin, ip, user_agent, skip_restrictions)
32
32
  signin.update!(expiration_time: (Time.zone.now + self.signin_expiration)) unless signin.expiration_time.nil? || self.signin_expiration == 0
33
33
  signin.signinable
34
34
  end
35
35
  end
36
36
 
37
- def check_signin_permission(signin, ip, user_agent)
38
- signin_permitted?(signin, ip, user_agent)
37
+ def check_signin_permission(signin, ip, user_agent, skip_restrictions)
38
+ signin_permitted?(signin, ip, user_agent, skip_restrictions)
39
39
  end
40
40
 
41
41
  private
42
- def signin_permitted?(signin, ip, user_agent)
42
+ def signin_permitted?(signin, ip, user_agent, skip_restrictions)
43
43
  restriction_fields = case
44
44
  when self.signin_restrictions.respond_to?(:call)
45
45
  self.signin_restrictions.call(signin.signinable)
@@ -49,7 +49,7 @@ module Signinable
49
49
  []
50
50
  end
51
51
 
52
- restriction_fields.each do |field|
52
+ (restriction_fields - skip_restrictions).each do |field|
53
53
  if(local_variables.include?(field.to_sym) && signin.respond_to?("#{field}"))
54
54
  return false unless signin.send("#{field}") == eval("#{field}")
55
55
  end
@@ -67,9 +67,9 @@ module Signinable
67
67
  Signin.create!(signinable: self, ip: ip, referer: referer, user_agent: user_agent, expiration_time: expiration_time).token
68
68
  end
69
69
 
70
- def signout(token, ip, user_agent)
70
+ def signout(token, ip, user_agent, skip_restrictions=[])
71
71
  if(signin = Signin.find_by_token(token))
72
- return nil unless self.class.check_signin_permission(signin, ip, user_agent)
72
+ return nil unless self.class.check_signin_permission(signin, ip, user_agent, skip_restrictions)
73
73
  signin.expire!
74
74
 
75
75
  return true
@@ -1,3 +1,3 @@
1
1
  module Signinable
2
- VERSION = "2.0.7"
2
+ VERSION = "2.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: signinable
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.7
4
+ version: 2.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Novozhenets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-12 00:00:00.000000000 Z
11
+ date: 2017-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -158,40 +158,40 @@ signing_key:
158
158
  specification_version: 4
159
159
  summary: Token based signin
160
160
  test_files:
161
+ - spec/spec_helper.rb
161
162
  - spec/dummy/app/models/user.rb
163
+ - spec/dummy/bin/rake
162
164
  - spec/dummy/bin/bundle
163
165
  - spec/dummy/bin/rails
164
- - spec/dummy/bin/rake
165
- - spec/dummy/config/application.rb
166
- - spec/dummy/config/boot.rb
167
- - spec/dummy/config/database.yml
168
- - spec/dummy/config/environment.rb
169
- - spec/dummy/config/environments/development.rb
166
+ - spec/dummy/config/routes.rb
167
+ - spec/dummy/config/locales/en.yml
170
168
  - spec/dummy/config/environments/production.rb
169
+ - spec/dummy/config/environments/development.rb
171
170
  - spec/dummy/config/environments/test.rb
171
+ - spec/dummy/config/environment.rb
172
+ - spec/dummy/config/application.rb
173
+ - spec/dummy/config/database.yml
174
+ - spec/dummy/config/boot.rb
172
175
  - spec/dummy/config/initializers/backtrace_silencers.rb
173
- - spec/dummy/config/initializers/filter_parameter_logging.rb
174
- - spec/dummy/config/initializers/inflections.rb
175
176
  - spec/dummy/config/initializers/mime_types.rb
176
- - spec/dummy/config/initializers/secret_token.rb
177
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
177
178
  - spec/dummy/config/initializers/session_store.rb
178
179
  - spec/dummy/config/initializers/wrap_parameters.rb
179
- - spec/dummy/config/locales/en.yml
180
- - spec/dummy/config/routes.rb
180
+ - spec/dummy/config/initializers/secret_token.rb
181
+ - spec/dummy/config/initializers/inflections.rb
181
182
  - spec/dummy/config.ru
182
- - spec/dummy/db/migrate/20140103165606_create_users.rb
183
+ - spec/dummy/Rakefile
184
+ - spec/dummy/public/favicon.ico
185
+ - spec/dummy/public/422.html
186
+ - spec/dummy/public/500.html
187
+ - spec/dummy/public/404.html
183
188
  - spec/dummy/db/schema.rb
184
189
  - spec/dummy/db/test.sqlite3
190
+ - spec/dummy/db/migrate/20140103165606_create_users.rb
185
191
  - spec/dummy/log/test.log
186
- - spec/dummy/public/404.html
187
- - spec/dummy/public/422.html
188
- - spec/dummy/public/500.html
189
- - spec/dummy/public/favicon.ico
190
- - spec/dummy/Rakefile
191
192
  - spec/dummy/README.rdoc
192
- - spec/factories/signin.rb
193
- - spec/factories/user.rb
194
193
  - spec/models/signin_spec.rb
195
194
  - spec/models/user_spec.rb
196
- - spec/spec_helper.rb
197
195
  - spec/support/utilities.rb
196
+ - spec/factories/signin.rb
197
+ - spec/factories/user.rb