authentasaurus 0.6.5 → 0.6.6

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.
@@ -19,11 +19,15 @@ module ActiveRecord::ActsAsAuthenticatable
19
19
 
20
20
 
21
21
  ## Authenticates the username and password
22
- def authenticate(username, password)
22
+ def authenticate(username, password, remember = false)
23
23
  user=self.find_by_username username
24
24
  if user
25
25
  expected_password=encrypt_password(password, user.password_seed)
26
- user = nil unless expected_password == user.hashed_password && user.active
26
+ unless expected_password == user.hashed_password && user.active
27
+ user = nil
28
+ else
29
+ user.create_remember_me_token if remember
30
+ end
27
31
  end
28
32
  return user
29
33
  end
@@ -8,11 +8,15 @@ module ActiveRecord::ActsAsAuthenticatableValidatable
8
8
 
9
9
  module ClassMethods
10
10
  ## Authenticates the username and password
11
- def authenticate(username, password)
11
+ def authenticate(username, password, remember = false)
12
12
  user=self.find_by_username username
13
13
  if user
14
14
  expected_password=encrypt_password(password, user.password_seed)
15
- user = nil unless expected_password == user.hashed_password && user.active && user.validation.nil?
15
+ unless expected_password == user.hashed_password && user.active && user.validation.nil?
16
+ user = nil
17
+ else
18
+ user.create_remember_me_token if remember
19
+ end
16
20
  end
17
21
  return user
18
22
  end
@@ -6,14 +6,14 @@ module ActiveResource::ActsAsAuthenticatable
6
6
 
7
7
  module ClassMethods
8
8
  ## Authenticates the username and password
9
- def authenticate(username, password)
9
+ def authenticate(username, password, remember = false)
10
10
  case(self.format)
11
11
  when ActiveResource::Formats::XmlFormat
12
- user = self.new Hash.from_xml(self.post(:signin,:username => username, :password => password).body).values.first
12
+ user = self.new Hash.from_xml(self.post(:signin,:username => username, :password => password, :remember => remember).body).values.first
13
13
  when ActiveResource::Formats::JsonFormat
14
- user = self.new ActiveSupport::JSON.decode(self.post(:signin,:username => username, :password => password).body)
14
+ user = self.new ActiveSupport::JSON.decode(self.post(:signin,:username => username, :password => password, :remember => remember).body)
15
15
  else
16
- user = self.new Hash.from_xml(self.post(:signin,:username => username, :password => password).body).values.first
16
+ user = self.new Hash.from_xml(self.post(:signin,:username => username, :password => password, :remember => remember).body).values.first
17
17
  end
18
18
 
19
19
  unless user.nil?
@@ -25,6 +25,7 @@ module ActiveResource::ActsAsAuthenticatable
25
25
  last_update_datetime = (last_update.kind_of?(String)) ? (DateTime.parse(last_update)) : (last_update)
26
26
 
27
27
  if local_user.updated_at < last_update_datetime
28
+
28
29
  local_user.update_attributes user.attributes
29
30
  end
30
31
  else
@@ -43,7 +44,11 @@ module ActiveResource::ActsAsAuthenticatable
43
44
  last_update = user.attributes.delete "updated_at"
44
45
  local_user = self.class.sync_to.find_or_initialize_by_username user.username, user.attributes
45
46
 
46
- local_user.update_attributes user.attributes
47
+ unless local_user.new_record?
48
+ local_user.update_attributes user.attributes
49
+ else
50
+ local_user.save
51
+ end
47
52
  else
48
53
  false
49
54
  end
@@ -52,12 +52,11 @@ module Authentasaurus::Models::Session
52
52
 
53
53
  ret = true
54
54
  session_types.each do |type|
55
- @user = type.to_s.camelize.constantize.authenticate(self.username, self.password)
55
+ @user = type.to_s.camelize.constantize.authenticate(self.username, self.password, self.remember == "1")
56
56
  if @user.nil?
57
57
  self.errors.add_to_base I18n.t(:invalid_login, :scope => [:authentasaurus, :messages, :sessions])
58
58
  ret &= false
59
59
  else
60
- @user.create_remember_me_token if self.remember == "1"
61
60
  ret = true
62
61
  break
63
62
  end
@@ -28,7 +28,7 @@ module Authentasaurus::SessionsController
28
28
  end
29
29
  session[:user_id] = @session.user.id
30
30
  session[:user_permissions] = {:read => @session.user.permissions.collect{|per| per.area.name if per.read}, :write => @session.user.permissions.collect{|per| per.area.name if per.write}}
31
- format.html { redirect_to session[:original_url] || root_url }
31
+ format.html { redirect_to session[:original_url] || (defined?(signin_redirect_path).nil? ? root_path : signin_redirect_path) }
32
32
  else
33
33
  format.html { render :action => :new }
34
34
  end
@@ -48,7 +48,9 @@ module Authentasaurus::SessionsController
48
48
 
49
49
  private
50
50
  def check_is_logged_in
51
- redirect_to root_path if session[:user_id]
51
+ if is_logged_in?
52
+ redirect_to defined?(signin_redirect_path).nil? ? root_path : signin_redirect_path
53
+ end
52
54
  end
53
55
  end
54
56
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authentasaurus
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 5
10
- version: 0.6.5
9
+ - 6
10
+ version: 0.6.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Omar Mekky
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2010-08-12 00:00:00 +02:00
21
+ date: 2010-08-16 00:00:00 +02:00
22
22
  default_executable:
23
23
  dependencies: []
24
24