rughetto-merb-auth-remember-me 0.0.2 → 0.0.3

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.
data/TODO CHANGED
@@ -1,5 +1,2 @@
1
1
  TODO:
2
- Fix LICENSE with your name
3
- Fix Rakefile with your name and contact info
4
- Add your code to lib/pn-remember-me.rb
5
- Add your Merb rake tasks to lib/pn-remember-me/merbtasks.rb
2
+ make token refresh with each request ??
@@ -1,27 +1,35 @@
1
- # make sure we're running inside Merb
2
1
  if defined?(Merb::Plugins)
3
-
4
2
  $:.unshift File.dirname(__FILE__)
5
3
 
6
4
  # register the authentication strategy
7
5
  require(File.expand_path(File.dirname(__FILE__) / "merb-auth-remember-me" / "mixins") / "authenticated_user")
8
6
  strategy_path = File.expand_path(File.dirname(__FILE__)) / "merb-auth-remember-me" / "strategies"
7
+ Merb.logger.info('Registering and activating RememberMe strategy')
9
8
  Merb::Authentication.register(:remember_me, strategy_path / "remember_me.rb")
9
+ Merb::Authentication.activate!(:remember_me) # and activate it
10
10
 
11
11
  # Plugin configurations
12
- Merb::Plugins.config[:merb_auth_remember_me] = { }
13
-
14
- Merb::BootLoader.before_app_loads do
15
- end
12
+ Merb::Plugins.config[:merb_auth_remember_me] = {:include_model_methods => true }
16
13
 
17
14
  Merb::BootLoader.after_app_loads do
18
15
  Merb::Authentication.after_authentication do |user,request,params|
19
16
  if params[:remember_me] == "1"
20
17
  user.remember_me
21
- request.cookies.set_cookie(:auth_token, user.remember_token, :expires => user.remember_token_expires_at.to_time)
18
+ request.cookies.set_cookie(
19
+ :auth_token,
20
+ user.remember_token,
21
+ :expires => user.remember_token_expires_at.to_time
22
+ )
22
23
  end
23
24
  user
24
- end
25
- end
26
-
27
- end
25
+ end # Merb::Authentication.after_authentication
26
+
27
+ Merb::Authentication.user_class.class_eval do
28
+ if Merb::Plugins.config[:merb_auth_remember_me][:include_model_methods]
29
+ Merb.logger.info("Including RememberMe Mixin in #{Merb::Authentication.user_class}.
30
+ To avoid this inclusion add 'Merb::Plugins.config[:merb_auth_remember_me][:include_model_methods] = false' in your config/init.rb before_app_loads method")
31
+ include Merb::Authentication::Mixins::AuthenticatedUser
32
+ end
33
+ end # Merb::Authentication.user_class.class_eval
34
+ end # Merb::BootLoader.after_app_loads
35
+ end # if defined?(Merb::Plugins)
@@ -1,56 +1,12 @@
1
- class RememberMe < Merb::Authentication::Strategy
2
- def run!
3
- login_from_cookie
4
- end
5
-
6
- def current_user
7
- @current_user
8
- end
9
-
10
- def current_user=(new_user)
11
- @current_user = new_user
12
- end
13
-
14
- # Called from #current_user. Finaly, attempt to login by an expiring token in the cookie.
15
- # for the paranoid: we _should_ be storing user_token = hash(cookie_token, request IP)
16
- def login_from_cookie
17
- current_user = cookies[:auth_token] && Merb::Authentication.user_class.first(:conditions => ["remember_token = ?", cookies[:auth_token]])
18
- if current_user && current_user.remember_token?
19
- handle_remember_cookie! false # freshen cookie token (keeping date)
20
- current_user
21
- end
22
- end
23
-
24
- #
25
- # Remember_me Tokens
26
- #
27
- # Cookies shouldn't be allowed to persist past their freshness date,
28
- # and they should be changed at each login
29
-
30
- # Cookies shouldn't be allowed to persist past their freshness date,
31
- # and they should be changed at each login
32
-
33
- def valid_remember_cookie?
34
- return nil unless current_user
35
- (current_user.remember_token?) &&
36
- (cookies[:auth_token] == current_user.remember_token)
37
- end
38
-
39
- # Refresh the cookie auth token if it exists, create it otherwise
40
- def handle_remember_cookie! new_cookie_flag
41
- return unless current_user
42
- case
43
- when valid_remember_cookie? then current_user.refresh_token # keeping same expiry date
44
- when new_cookie_flag then current_user.remember_me
45
- else current_user.forget_me
46
- end
47
- send_remember_cookie!
48
- end
49
-
50
- def send_remember_cookie!
51
- cookies.set_cookie(:auth_token, current_user.remember_token, :expires => current_user.remember_token_expires_at.to_time)
52
- end
53
-
54
-
55
- end
56
-
1
+ module Merb::Authentication::Strategies
2
+ class RememberMeStrategy < Merb::Authentication::Strategy
3
+ def run!
4
+ if cookies[:auth_token]
5
+ user = Merb::Authentication.user_class.first(
6
+ :conditions => [ "remember_token = ?", cookies[:auth_token] ]
7
+ )
8
+ end
9
+ user && user.remembered? ? user : nil
10
+ end # run!
11
+ end # RememberMeStrategy
12
+ end # Merb::Authentication::Strategies
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rughetto-merb-auth-remember-me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Surasit Liangpornrattana
8
+ - Rue the Ghetto
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
@@ -23,7 +24,7 @@ dependencies:
23
24
  version: "1.0"
24
25
  version:
25
26
  description: Merb plugin that provides remember me for merb-auth-slice-password
26
- email: punneng@gmail.com
27
+ email: ru_ghetto@rubyghetto.com
27
28
  executables: []
28
29
 
29
30
  extensions: []
@@ -55,7 +56,7 @@ files:
55
56
  - spec/strategies
56
57
  - spec/strategies/remember_me_spec.rb
57
58
  has_rdoc: true
58
- homepage: https://github.com/PunNeng/pn-merb-auth-remember-me
59
+ homepage: https://github.com/rughetto/merb-auth-remember-me
59
60
  post_install_message:
60
61
  rdoc_options: []
61
62