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 +4 -4
- data/lib/signinable/model_additions.rb +8 -8
- data/lib/signinable/version.rb +1 -1
- metadata +22 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6aedbf478d474ba1c4eaea564eb5923f447d014
|
4
|
+
data.tar.gz: 1e679b63fc9ffc805c4ed762db8d56accf7d0bd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/signinable/version.rb
CHANGED
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.
|
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
|
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/
|
165
|
-
- spec/dummy/config/
|
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/
|
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/
|
180
|
-
- spec/dummy/config/
|
180
|
+
- spec/dummy/config/initializers/secret_token.rb
|
181
|
+
- spec/dummy/config/initializers/inflections.rb
|
181
182
|
- spec/dummy/config.ru
|
182
|
-
- spec/dummy/
|
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
|