signinable 2.0.7 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
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