authie 3.2.0 → 3.3.0

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: a46a9aad44c28c4ad761dd1b8057da3cd5580811
4
- data.tar.gz: 25d64343871df67c2eb2c8e2085d488107812d87
3
+ metadata.gz: 65b0f0b0c1a8a8de1b9bd7759cd06cbcae80eddd
4
+ data.tar.gz: 7069b86b31ce68a03bb2070e45c4e290fa862230
5
5
  SHA512:
6
- metadata.gz: 2bfaa07c70d14caae2a237816b5b6af52899d6553b8d075faff1112afe864956c128e0d52a97b9fdab7687f9b474353ef9470e0335c137fa91b6021a0cfcd72c
7
- data.tar.gz: 60a0f88cac0f89a404b993afe05a23d865c68fef48e4f2e188b91a789a29b47804d64d0b51996ef3da5dbb670e034153788f7619b5c9ca5d1fef5d51e8ef2d59
6
+ metadata.gz: eba5598c28d8179aa79bc1ebcfe2e0f3c6f924ffe687f3910ec336edb53cfd8577f753dffba2c98f3e012da93adf3fcd9b4de8c8dbaca9a07ffd53face9ded0c
7
+ data.tar.gz: 432cade42ac473df975d36c835ae8b22fca02213a62fa1febafafdf60d245f4826af4d116092d0df4b49f899a64cf1099110e359a388899f5c350ee43ed427d6
@@ -1 +1 @@
1
- /R"u'J8�Ŵ�+^��dd��T�g�,�=
1
+ {�#���R��SC��0�(]�P��\=�vO<�#�����LR�; b{�* ������{�o|�~QO��@�X�I��04U6CY}���G뻆�8���R�?�N}��lL� ݲ��v��t�4����5}�h�G����,7�P��#}�b�)�,�C³3Uq�מ:�0��9I��ͫ�o�A���7<��в�)�4|��Mx+�=q�]���"],Cz�"^���>�-8
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,6 @@
1
+ require 'securerandom'
2
+ require 'authie/session'
3
+
1
4
  module Authie
2
5
  class ControllerDelegate
3
6
 
@@ -9,7 +12,7 @@ module Authie
9
12
  def set_browser_id
10
13
  until cookies[Authie.config.browser_id_cookie_name]
11
14
  proposed_browser_id = SecureRandom.uuid
12
- unless Session.where(:browser_id => proposed_browser_id).exists?
15
+ unless Authie::Session.where(:browser_id => proposed_browser_id).exists?
13
16
  cookies[Authie.config.browser_id_cookie_name] = {
14
17
  :value => proposed_browser_id,
15
18
  :expires => 5.years.from_now,
@@ -36,11 +39,28 @@ module Authie
36
39
 
37
40
  # Set the currently logged in user
38
41
  def current_user=(user)
42
+ create_auth_session(user)
43
+ user
44
+ end
45
+
46
+ # Create a new session for the given user
47
+ def create_auth_session(user)
39
48
  if user
40
- @auth_session = Session.start(@controller, :user => user)
49
+ @auth_session = Authie::Session.start(@controller, :user => user)
41
50
  else
42
51
  auth_session.invalidate! if logged_in?
43
- @auth_session = nil
52
+ @auth_session = :none
53
+ end
54
+ end
55
+
56
+ # Invalidate an existing auth session
57
+ def invalidate_auth_session
58
+ if logged_in?
59
+ auth_session.invalidate!
60
+ @auth_session = :none
61
+ true
62
+ else
63
+ false
44
64
  end
45
65
  end
46
66
 
@@ -51,7 +71,8 @@ module Authie
51
71
 
52
72
  # Return the currently logged in user session
53
73
  def auth_session
54
- @auth_session ||= Session.get_session(@controller)
74
+ @auth_session ||= Authie::Session.get_session(@controller)
75
+ @auth_session == :none ? nil : @auth_session
55
76
  end
56
77
 
57
78
  private
@@ -31,6 +31,14 @@ module Authie
31
31
  auth_session_delegate.current_user = user
32
32
  end
33
33
 
34
+ def create_auth_session(user)
35
+ auth_session_delegate.create_auth_session(user)
36
+ end
37
+
38
+ def invalidate_auth_session
39
+ auth_session_delegate.invalidate_auth_session
40
+ end
41
+
34
42
  def logged_in?
35
43
  auth_session_delegate.logged_in?
36
44
  end
@@ -3,9 +3,11 @@ module Authie
3
3
 
4
4
  engine_name 'authie'
5
5
 
6
- config.autoload_paths += Dir["#{config.root}/lib/**/"]
7
-
8
6
  initializer 'authie.initialize' do |app|
7
+ ActiveSupport.on_load :active_record do
8
+ require 'authie/session'
9
+ end
10
+
9
11
  ActiveSupport.on_load :action_controller do
10
12
  require 'authie/controller_extension'
11
13
  include Authie::ControllerExtension
@@ -15,10 +15,6 @@ module Authie
15
15
  self.table_name = "authie_sessions"
16
16
 
17
17
  # Relationships
18
- user_options = {:polymorphic => true}.merge(Authie.config.user_relationship_options)
19
- user_options[:optional] = true if ActiveRecord::VERSION::MAJOR >= 5
20
- belongs_to :user, user_options
21
-
22
18
  parent_options = {:class_name => "Authie::Session"}
23
19
  parent_options[:optional] = true if ActiveRecord::VERSION::MAJOR >= 5
24
20
  belongs_to :parent, parent_options
@@ -36,6 +32,10 @@ module Authie
36
32
  if self.user_agent.is_a?(String)
37
33
  self.user_agent = self.user_agent[0,255]
38
34
  end
35
+
36
+ if self.last_activity_path.is_a?(String)
37
+ self.last_activity_path = self.last_activity_path[0,255]
38
+ end
39
39
  end
40
40
 
41
41
  before_create do
@@ -51,6 +51,14 @@ module Authie
51
51
  cookies.delete(:user_session) if controller
52
52
  end
53
53
 
54
+ # Return the user that
55
+ def user
56
+ if self.user_id && self.user_type
57
+ @user ||= self.user_type.constantize.find_by(:id => self.user_id) || :none
58
+ @user == :none ? nil : @user
59
+ end
60
+ end
61
+
54
62
  # This method should be called each time a user performs an
55
63
  # action while authenticated with this session.
56
64
  def touch!
@@ -252,7 +260,15 @@ module Authie
252
260
  def self.start(controller, params = {})
253
261
  cookies = controller.send(:cookies)
254
262
  self.active.where(:browser_id => cookies[:browser_id]).each(&:invalidate!)
263
+ user_object = params.delete(:user)
264
+
265
+ if user_object.nil?
266
+ raise ActiveRecord::RecordInvalid, ':user must be provided when creating a session'
267
+ end
268
+
255
269
  session = self.new(params)
270
+ session.user_type = user_object.class.to_s
271
+ session.user_id = user_object.id
256
272
  session.controller = controller
257
273
  session.browser_id = cookies[:browser_id]
258
274
  session.login_at = Time.now
@@ -1,3 +1,3 @@
1
1
  module Authie
2
- VERSION = '3.2.0'
2
+ VERSION = '3.3.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authie
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Cooke
@@ -10,32 +10,27 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEZDCCAsygAwIBAgIBATANBgkqhkiG9w0BAQsFADA8MQswCQYDVQQDDAJtZTEZ
13
+ MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQDDAJtZTEZ
14
14
  MBcGCgmSJomT8ixkARkWCWFkYW1jb29rZTESMBAGCgmSJomT8ixkARkWAmlvMB4X
15
- DTE4MDMwNTE3MzAwNVoXDTE5MDMwNTE3MzAwNVowPDELMAkGA1UEAwwCbWUxGTAX
16
- BgoJkiaJk/IsZAEZFglhZGFtY29va2UxEjAQBgoJkiaJk/IsZAEZFgJpbzCCAaIw
17
- DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAOH6HpXwjmVYrUQxUHm25mLm9qYK
18
- WS66Me1IfMUX3ZREZ/GzqiJZdV6itPuaaaKpbcm2A/KjgGSPOi9FZBneZ5KvbIeK
19
- /GsixL98kxB06q9DZwJbFz7Inklxkd/S0anm+PxtWkQP1TLkMsviRcBPEAqSLON9
20
- dCKC7+3kibhatdlsbqIQaeEhSoCUipYMi7ZyFHu5Qz+zMwc8JwHvQ4yi8cMa/QZ+
21
- s1tN4mkp/6vWWj4G4lF3YjFYyt2txJcK5ELDtyBy7a3vbMImPy9pplFx1/M6SNpn
22
- 7Pck0LqDprRzJXsGjq3CbC0nUaudFjUPr31KwxMYq1u13aQL9YuO3GeQCQ3gvdlJ
23
- TSd7zoGgLwrMGmXqgd392Psr29yp+WBLcvhFUJnNPDV8nlph/cqmRzoIewP1kdPq
24
- pEIUIJQdyKJU7gmFlJ1FurarkuT0a2Rgs99WokCoXLxuPmRWQRN1sH2nHL70jgAR
25
- UuvyXEtyALHoCn3VqBR7ZvpfDblUzfANQDhBgwIDAQABo3EwbzAJBgNVHRMEAjAA
26
- MAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUa7gxxSE4SO2Ors4B+y3qANdMpo4wGgYD
27
- VR0RBBMwEYEPbWVAYWRhbWNvb2tlLmlvMBoGA1UdEgQTMBGBD21lQGFkYW1jb29r
28
- ZS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAkbz/AJwBsRKwgt2BhWqgr/egf/37IS3s
29
- utVox7feYutKyFDHXYvCjm64XUJNioG7ipbRwOOGs5bEYfwgkabcAQnxSlkdNjc4
30
- JIgL/cF4YRg8uJG7DH+LwpydXHqr7RneDiONuiHlEN/1EZZ8tjwXypdwzhQ2/6ot
31
- YOxdSi/mXdoDoFlIebsLyInUZjqnm7dQ9nTTUNSB+1LoOD8ARNhTIPnKCnxwZd56
32
- giOxoHuJIOhgi6U2zicZJHv8lUj2Lc3bcirQk5eeOFRPVGQSpLLoqA7dtS7Jy4cv
33
- 3c5m+HyxSxzlrcVHMAgJYemK0uhVQD9Y6JwHKDroWDH+MPALjlScw8ui1jmNuH31
34
- n5JOH/07C4gYcwTjJmtoRSov46Z6Gn5cc6NFkQpA185pbRLqEDKzusXvBOQlAOLh
35
- iyQrH6PJ0xgVJNYx+DLq3eFmo2hYJkw/lVhYAK+MdajtYJbD5VvCIEHO0d5RRgV+
36
- qnCNZoPPy0UtRmGKZTMZvVJEZiw4g0fY
15
+ DTE5MDUxNDEzNTIxM1oXDTIwMDUxMzEzNTIxM1owPDELMAkGA1UEAwwCbWUxGTAX
16
+ BgoJkiaJk/IsZAEZFglhZGFtY29va2UxEjAQBgoJkiaJk/IsZAEZFgJpbzCCASIw
17
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMUohRlPw3iIOhWZq+qf5N1ATm1H
18
+ 7gBO4TpsUrw/FL/+urFExzt1+4MPfiKjILge48vKpjoTfuZusRsOQebaFidOfmhk
19
+ sEqa941CvN3OeUYARA53ORlmoLDLmdcrxq430+woFp4uuSYwim/2YQgIMdgiOTqs
20
+ cHaM9yh/xUGMnH4lB9bBDNfggMmkSFb6P8Ax4rvdX3EVv5P58RHwHszd+UI4fyy9
21
+ 0W143m6ntNmqena4ZOc7HtWtRyDHHXXzlGgmghKEZgOA+/LO53VHp+cM0JqB7lq5
22
+ ZxN43fQrIT5yY9Dy7dRBeiDo53WNJPspa5soEivCBVYstMqfd+LGk/BnsyMCAwEA
23
+ AaNxMG8wCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGlRGerNfr6J
24
+ Dprgl6DQ3kLvgVvPMBoGA1UdEQQTMBGBD21lQGFkYW1jb29rZS5pbzAaBgNVHRIE
25
+ EzARgQ9tZUBhZGFtY29va2UuaW8wDQYJKoZIhvcNAQEFBQADggEBAK2TQPMeW9qh
26
+ NDNoVbbplfSc8/uscSP2DfssCbhXQqeDfF2z+kQpxv8iAc++KTlotqOaX5A6RvLb
27
+ NvuwMHPJRQJ2e8rbuN8Sh3tUjbkAEv3SFw4hqbKmtp0j2oKBU0dxHWNfp+5ulh2l
28
+ UXnQAt4zg3v1hTD1VrwLqG/hyk9xAaWB38lEDBuPhLrDIdDJklg9bD1E2TUvoMrg
29
+ L6TIbdP1TRrxINO1D9GzboR+OuWos7qMLBEEbjat/fQchYrW1KLcHIUCyrGkZTLm
30
+ 3wUJNGnT5XYq+qvTqmjkTSTfdGvZCM63C6bGdN5CAyMokGOOatGqyCMAONolWnfC
31
+ gm3t2GWWrxY=
37
32
  -----END CERTIFICATE-----
38
- date: 2018-10-09 00:00:00.000000000 Z
33
+ date: 2019-08-27 00:00:00.000000000 Z
39
34
  dependencies: []
40
35
  description: A Rails library for storing user sessions in a backend database
41
36
  email:
metadata.gz.sig CHANGED
Binary file