central_authentication 0.0.3 → 0.0.4
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/central_authentication.gemspec +1 -1
- data/lib/central_authentication/acts_as_central_authentication_user.rb +14 -7
- data/lib/central_authentication/railtie.rb +1 -1
- data/lib/central_authentication/user.rb +1 -2
- data/lib/central_authentication/version.rb +1 -1
- data/lib/generators/templates/remove_password_related_fields_from_user.rb +24 -8
- metadata +4 -6
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = CentralAuthentication::VERSION
|
8
8
|
s.authors = ["Hannes Benson"]
|
9
9
|
s.email = ["hannes@mpowered.co.za"]
|
10
|
-
s.homepage = ""
|
10
|
+
s.homepage = "https://github.com/HannesBenson/CentralAuthentication"
|
11
11
|
s.summary = %q{Central Authentication using Authlogic}
|
12
12
|
s.description = %q{This gem allows you to share a central database and using authlogic stores and retrieves passwords}
|
13
13
|
|
@@ -22,27 +22,33 @@ module ActiveRecord
|
|
22
22
|
config.validate_login_field = false
|
23
23
|
end
|
24
24
|
|
25
|
-
validates_presence_of :password
|
26
|
-
validates_presence_of :password_confirmation
|
25
|
+
validates_presence_of :password, :if => Proc.new {|user| user.new_record? && user.central_auth_user_id.nil?}
|
26
|
+
validates_presence_of :password_confirmation, :if => Proc.new {|user| user.new_record? && user.central_auth_user_id.nil?}
|
27
27
|
validates_format_of :password, :with => /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{9,15}$/,
|
28
|
-
:message => 'must contain at least one uppercase and one lowercase letter as well as at least one numerical character.'
|
28
|
+
:message => 'must be between 9 and 15 characters long, contain at least one uppercase and one lowercase letter as well as at least one numerical character.',
|
29
|
+
:if => Proc.new {|user| (user.password.present? || user.password_confirmation.present?)}
|
29
30
|
validates_format_of :password_confirmation, :with => /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{9,15}$/,
|
30
|
-
:message => 'must contain at least one uppercase and one lowercase letter as well as at least one numerical character.'
|
31
|
+
:message => 'must be between 9 and 15 characters long, contain at least one uppercase and one lowercase letter as well as at least one numerical character.',
|
32
|
+
:if => Proc.new {|user| (user.password.present? || user.password_confirmation.present?)}
|
31
33
|
validates_confirmation_of :password
|
32
34
|
|
33
|
-
|
35
|
+
before_validation :create_or_set_cauth_user
|
36
|
+
|
37
|
+
def self.find_by_persistence_token(persistence_token)
|
38
|
+
CentralAuthentication::User.find_by_persistence_token(persistence_token)
|
39
|
+
end
|
34
40
|
end
|
35
41
|
end
|
36
42
|
module InstanceMethods
|
37
43
|
def create_cauth_user
|
38
|
-
CentralAuthentication::User.create(:email => self.email, :password => self.password, :
|
44
|
+
CentralAuthentication::User.create(:email => self.email, :password => self.password, :password_expires_on => Date.today + 30.days, :persistence_token => self.persistence_token)
|
39
45
|
end
|
40
46
|
|
41
47
|
def update_cauth_user(cauth_user)
|
42
48
|
if self.password.blank?
|
43
49
|
cauth_user.update_attributes(:email => self.email)
|
44
50
|
else
|
45
|
-
cauth_user.update_attributes(:password => self.password, :
|
51
|
+
cauth_user.update_attributes(:password => self.password, :email => self.email)
|
46
52
|
end
|
47
53
|
end
|
48
54
|
|
@@ -52,6 +58,7 @@ module ActiveRecord
|
|
52
58
|
cauth_user = create_cauth_user
|
53
59
|
self.central_auth_user_id = cauth_user.id
|
54
60
|
else
|
61
|
+
self.central_authentication_user = cauth_user if self.central_auth_user_id.nil?
|
55
62
|
update_cauth_user(cauth_user)
|
56
63
|
end
|
57
64
|
end
|
@@ -3,7 +3,7 @@ require 'rails'
|
|
3
3
|
|
4
4
|
module CentralAuthentication
|
5
5
|
class Railtie < Rails::Railtie
|
6
|
-
|
6
|
+
initializer "central_authentication.configure_rails_initialization" do
|
7
7
|
require 'central_authentication/version'
|
8
8
|
require 'central_authentication/connection'
|
9
9
|
require 'central_authentication/migration'
|
@@ -1,9 +1,8 @@
|
|
1
1
|
class CentralAuthentication::User < CentralAuthentication::Connection
|
2
2
|
acts_as_authentic do |config|
|
3
|
-
#config.merge_validates_length_of_password_field_options({:minimum => 9})
|
4
|
-
#config.merge_validates_length_of_password_confirmation_field_options({:minimum => 9})
|
5
3
|
config.login_field = :email
|
6
4
|
config.validate_password_field = false
|
5
|
+
config.session_class = UserSession
|
7
6
|
end
|
8
7
|
|
9
8
|
def self.valid?(email, password)
|
@@ -1,15 +1,31 @@
|
|
1
1
|
class RemovePasswordRelatedFieldsFromUser < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
if column_exists? :users, :password_salt
|
4
|
+
remove_column :users, :password_salt
|
5
|
+
end
|
6
|
+
if column_exists? :users, :crypted_password
|
7
|
+
remove_column :users, :crypted_password
|
8
|
+
end
|
9
|
+
if column_exists? :users, :persistence_token
|
10
|
+
remove_column :users, :persistence_token
|
11
|
+
end
|
12
|
+
if column_exists? :users, :perishable_token
|
13
|
+
remove_column :users, :perishable_token
|
14
|
+
end
|
7
15
|
end
|
8
16
|
|
9
17
|
def self.down
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
18
|
+
unless column_exists? :users, :password_salt
|
19
|
+
add_column :users, :password_salt, :string
|
20
|
+
end
|
21
|
+
unless column_exists? :users, :crypted_password
|
22
|
+
add_column :users, :crypted_password, :string
|
23
|
+
end
|
24
|
+
unless column_exists? :users, :persistence_token
|
25
|
+
add_column :users, :persistence_token, :string
|
26
|
+
end
|
27
|
+
unless column_exists? :users, :perishable_token
|
28
|
+
add_column :users, :perishable_token, :string
|
29
|
+
end
|
14
30
|
end
|
15
31
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: central_authentication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
default_executable:
|
12
|
+
date: 2012-03-17 00:00:00.000000000 Z
|
14
13
|
dependencies: []
|
15
14
|
description: This gem allows you to share a central database and using authlogic stores
|
16
15
|
and retrieves passwords
|
@@ -37,8 +36,7 @@ files:
|
|
37
36
|
- lib/generators/templates/add_users_table_to_cauth_db.rb
|
38
37
|
- lib/generators/templates/create_central_authentication_users.rb
|
39
38
|
- lib/generators/templates/remove_password_related_fields_from_user.rb
|
40
|
-
|
41
|
-
homepage: ''
|
39
|
+
homepage: https://github.com/HannesBenson/CentralAuthentication
|
42
40
|
licenses: []
|
43
41
|
post_install_message:
|
44
42
|
rdoc_options: []
|
@@ -58,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
58
56
|
version: '0'
|
59
57
|
requirements: []
|
60
58
|
rubyforge_project: central_authentication
|
61
|
-
rubygems_version: 1.
|
59
|
+
rubygems_version: 1.8.17
|
62
60
|
signing_key:
|
63
61
|
specification_version: 3
|
64
62
|
summary: Central Authentication using Authlogic
|