authlogic 1.3.5 → 1.3.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of authlogic might be problematic. Click here for more details.
- data/CHANGELOG.rdoc +4 -0
- data/Manifest +1 -0
- data/authlogic.gemspec +2 -2
- data/lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/config.rb +8 -6
- data/lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/credentials.rb +10 -3
- data/lib/authlogic/version.rb +1 -1
- data/test/libs/user.rb +5 -0
- data/test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/config_test.rb +8 -0
- data/test/test_helper.rb +1 -6
- metadata +2 -1
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
== 1.3.6 released 2008-11-30
|
2
|
+
|
3
|
+
* Modified validates_length_of for password so that there is a fallback validation if the passed "if statement" fails
|
4
|
+
|
1
5
|
== 1.3.5 released 2008-11-30
|
2
6
|
|
3
7
|
* :transition_from_crypto_provider for acts_as_authentic now accepts an array to transition from multiple providers. Which solves the problem of a double transition.
|
data/Manifest
CHANGED
@@ -46,6 +46,7 @@ test/libs/mock_controller.rb
|
|
46
46
|
test/libs/mock_cookie_jar.rb
|
47
47
|
test/libs/mock_request.rb
|
48
48
|
test/libs/ordered_hash.rb
|
49
|
+
test/libs/user.rb
|
49
50
|
test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/config_test.rb
|
50
51
|
test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/credentials_test.rb
|
51
52
|
test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/logged_in_test.rb
|
data/authlogic.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{authlogic}
|
5
|
-
s.version = "1.3.
|
5
|
+
s.version = "1.3.6"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Ben Johnson of Binary Logic"]
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.description = %q{A clean, simple, and unobtrusive ruby authentication solution.}
|
11
11
|
s.email = %q{bjohnson@binarylogic.com}
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG.rdoc", "lib/authlogic/controller_adapters/abstract_adapter.rb", "lib/authlogic/controller_adapters/merb_adapter.rb", "lib/authlogic/controller_adapters/rails_adapter.rb", "lib/authlogic/crypto_providers/aes256.rb", "lib/authlogic/crypto_providers/bcrypt.rb", "lib/authlogic/crypto_providers/sha1.rb", "lib/authlogic/crypto_providers/sha512.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/config.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/credentials.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/logged_in.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/perishability.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/persistence.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/session_maintenance.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/single_access.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic.rb", "lib/authlogic/orm_adapters/active_record_adapter/authenticates_many.rb", "lib/authlogic/session/active_record_trickery.rb", "lib/authlogic/session/authenticates_many_association.rb", "lib/authlogic/session/base.rb", "lib/authlogic/session/callbacks.rb", "lib/authlogic/session/config.rb", "lib/authlogic/session/cookies.rb", "lib/authlogic/session/errors.rb", "lib/authlogic/session/params.rb", "lib/authlogic/session/perishability.rb", "lib/authlogic/session/scopes.rb", "lib/authlogic/session/session.rb", "lib/authlogic/version.rb", "lib/authlogic.rb", "README.rdoc"]
|
13
|
-
s.files = ["CHANGELOG.rdoc", "init.rb", "lib/authlogic/controller_adapters/abstract_adapter.rb", "lib/authlogic/controller_adapters/merb_adapter.rb", "lib/authlogic/controller_adapters/rails_adapter.rb", "lib/authlogic/crypto_providers/aes256.rb", "lib/authlogic/crypto_providers/bcrypt.rb", "lib/authlogic/crypto_providers/sha1.rb", "lib/authlogic/crypto_providers/sha512.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/config.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/credentials.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/logged_in.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/perishability.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/persistence.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/session_maintenance.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/single_access.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic.rb", "lib/authlogic/orm_adapters/active_record_adapter/authenticates_many.rb", "lib/authlogic/session/active_record_trickery.rb", "lib/authlogic/session/authenticates_many_association.rb", "lib/authlogic/session/base.rb", "lib/authlogic/session/callbacks.rb", "lib/authlogic/session/config.rb", "lib/authlogic/session/cookies.rb", "lib/authlogic/session/errors.rb", "lib/authlogic/session/params.rb", "lib/authlogic/session/perishability.rb", "lib/authlogic/session/scopes.rb", "lib/authlogic/session/session.rb", "lib/authlogic/version.rb", "lib/authlogic.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README.rdoc", "shoulda_macros/authlogic.rb", "test/crypto_provider_tests/aes256_test.rb", "test/crypto_provider_tests/bcrypt_test.rb", "test/crypto_provider_tests/sha1_test.rb", "test/crypto_provider_tests/sha512_test.rb", "test/fixtures/companies.yml", "test/fixtures/employees.yml", "test/fixtures/projects.yml", "test/fixtures/users.yml", "test/libs/mock_controller.rb", "test/libs/mock_cookie_jar.rb", "test/libs/mock_request.rb", "test/libs/ordered_hash.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/config_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/credentials_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/logged_in_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/perishability_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/persistence_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/session_maintenance_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/single_access_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/authenticates_many_test.rb", "test/session_tests/active_record_trickery_test.rb", "test/session_tests/authenticates_many_association_test.rb", "test/session_tests/base_test.rb", "test/session_tests/config_test.rb", "test/session_tests/cookies_test.rb", "test/session_tests/params_test.rb", "test/session_tests/perishability_test.rb", "test/session_tests/scopes_test.rb", "test/session_tests/session_test.rb", "test/test_helper.rb", "authlogic.gemspec"]
|
13
|
+
s.files = ["CHANGELOG.rdoc", "init.rb", "lib/authlogic/controller_adapters/abstract_adapter.rb", "lib/authlogic/controller_adapters/merb_adapter.rb", "lib/authlogic/controller_adapters/rails_adapter.rb", "lib/authlogic/crypto_providers/aes256.rb", "lib/authlogic/crypto_providers/bcrypt.rb", "lib/authlogic/crypto_providers/sha1.rb", "lib/authlogic/crypto_providers/sha512.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/config.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/credentials.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/logged_in.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/perishability.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/persistence.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/session_maintenance.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic/single_access.rb", "lib/authlogic/orm_adapters/active_record_adapter/acts_as_authentic.rb", "lib/authlogic/orm_adapters/active_record_adapter/authenticates_many.rb", "lib/authlogic/session/active_record_trickery.rb", "lib/authlogic/session/authenticates_many_association.rb", "lib/authlogic/session/base.rb", "lib/authlogic/session/callbacks.rb", "lib/authlogic/session/config.rb", "lib/authlogic/session/cookies.rb", "lib/authlogic/session/errors.rb", "lib/authlogic/session/params.rb", "lib/authlogic/session/perishability.rb", "lib/authlogic/session/scopes.rb", "lib/authlogic/session/session.rb", "lib/authlogic/version.rb", "lib/authlogic.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README.rdoc", "shoulda_macros/authlogic.rb", "test/crypto_provider_tests/aes256_test.rb", "test/crypto_provider_tests/bcrypt_test.rb", "test/crypto_provider_tests/sha1_test.rb", "test/crypto_provider_tests/sha512_test.rb", "test/fixtures/companies.yml", "test/fixtures/employees.yml", "test/fixtures/projects.yml", "test/fixtures/users.yml", "test/libs/mock_controller.rb", "test/libs/mock_cookie_jar.rb", "test/libs/mock_request.rb", "test/libs/ordered_hash.rb", "test/libs/user.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/config_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/credentials_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/logged_in_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/perishability_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/persistence_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/session_maintenance_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/single_access_test.rb", "test/orm_adapters_tests/active_record_adapter_tests/authenticates_many_test.rb", "test/session_tests/active_record_trickery_test.rb", "test/session_tests/authenticates_many_association_test.rb", "test/session_tests/base_test.rb", "test/session_tests/config_test.rb", "test/session_tests/cookies_test.rb", "test/session_tests/params_test.rb", "test/session_tests/perishability_test.rb", "test/session_tests/scopes_test.rb", "test/session_tests/session_test.rb", "test/test_helper.rb", "authlogic.gemspec"]
|
14
14
|
s.has_rdoc = true
|
15
15
|
s.homepage = %q{http://github.com/binarylogic/authlogic}
|
16
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Authlogic", "--main", "README.rdoc"]
|
@@ -146,6 +146,10 @@ module Authlogic
|
|
146
146
|
columns_to_check.each { |column_name| return column_name.to_sym if column_names.include?(column_name.to_s) }
|
147
147
|
columns_to_check.first ? columns_to_check.first.to_sym : nil
|
148
148
|
end
|
149
|
+
|
150
|
+
def meta_def(name, &block)
|
151
|
+
(class << self; self; end).instance_eval { define_method name, &block }
|
152
|
+
end
|
149
153
|
|
150
154
|
def acts_as_authentic_with_config(options = {})
|
151
155
|
# Stop all configuration if the DB is not set up
|
@@ -209,12 +213,10 @@ module Authlogic
|
|
209
213
|
end
|
210
214
|
|
211
215
|
options[:transition_from_crypto_provider] = [options[:transition_from_crypto_provider]].compact unless options[:transition_from_crypto_provider].is_a?(Array)
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
end
|
217
|
-
end_eval
|
216
|
+
|
217
|
+
meta_def :acts_as_authentic_config do
|
218
|
+
options
|
219
|
+
end
|
218
220
|
|
219
221
|
acts_as_authentic_without_config(options)
|
220
222
|
end
|
@@ -41,8 +41,8 @@ module Authlogic
|
|
41
41
|
|
42
42
|
if options[:validate_password_field]
|
43
43
|
validates_length_of options[:password_field], {:minimum => 4}.merge(options[:password_field_validates_length_of_options].merge(:if => "validate_#{options[:password_field]}?".to_sym))
|
44
|
-
validates_confirmation_of options[:password_field], options[:password_field_validates_confirmation_of_options].merge(:if => "
|
45
|
-
validates_presence_of "#{options[:password_field]}_confirmation", :if => "
|
44
|
+
validates_confirmation_of options[:password_field], options[:password_field_validates_confirmation_of_options].merge(:if => "#{options[:password_salt_field]}_changed?".to_sym)
|
45
|
+
validates_presence_of "#{options[:password_field]}_confirmation", :if => "#{options[:password_salt_field]}_changed?".to_sym
|
46
46
|
end
|
47
47
|
|
48
48
|
if options[:validate_email_field] && options[:email_field]
|
@@ -114,7 +114,14 @@ module Authlogic
|
|
114
114
|
alias_method :randomize_password!, :reset_password!
|
115
115
|
|
116
116
|
def validate_#{options[:password_field]}?
|
117
|
-
|
117
|
+
case #{options[:password_field_validates_length_of_options][:if].inspect}
|
118
|
+
when String
|
119
|
+
return false unless eval('#{options[:password_field_validates_length_of_options][:if]}')
|
120
|
+
when Symbol
|
121
|
+
return false unless send(#{options[:password_field_validates_length_of_options][:if].inspect})
|
122
|
+
end
|
123
|
+
|
124
|
+
#{options[:crypted_password_field]}.blank?
|
118
125
|
end
|
119
126
|
|
120
127
|
private
|
data/lib/authlogic/version.rb
CHANGED
data/test/libs/user.rb
ADDED
data/test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/config_test.rb
CHANGED
@@ -103,6 +103,14 @@ module ORMAdaptersTests
|
|
103
103
|
assert_equal [Authlogic::CryptoProviders::Sha1], User.acts_as_authentic_config[:transition_from_crypto_provider]
|
104
104
|
end
|
105
105
|
|
106
|
+
# Need to finish this when I can figure out the best way to implement "transactions" for ruby constants inbetween tests
|
107
|
+
def test_password_field_validation_options
|
108
|
+
#User.acts_as_authentic(:password_field_validates_length_of_options => {:if => Proc.new { |user| false }})
|
109
|
+
#user = User.new
|
110
|
+
#assert !user.save!
|
111
|
+
#assert !user.errors.on(:password)
|
112
|
+
end
|
113
|
+
|
106
114
|
private
|
107
115
|
def get_default_configuration
|
108
116
|
@default_configuration = User.acts_as_authentic_config
|
data/test/test_helper.rb
CHANGED
@@ -7,6 +7,7 @@ require File.dirname(__FILE__) + '/../lib/authlogic' unless defined?(Authlogic)
|
|
7
7
|
require File.dirname(__FILE__) + '/libs/mock_request'
|
8
8
|
require File.dirname(__FILE__) + '/libs/mock_cookie_jar'
|
9
9
|
require File.dirname(__FILE__) + '/libs/mock_controller'
|
10
|
+
require File.dirname(__FILE__) + '/libs/user'
|
10
11
|
|
11
12
|
ActiveRecord::Schema.verbose = false
|
12
13
|
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :dbfile => ":memory:")
|
@@ -87,12 +88,6 @@ class Company < ActiveRecord::Base
|
|
87
88
|
has_many :users, :dependent => :destroy
|
88
89
|
end
|
89
90
|
|
90
|
-
class User < ActiveRecord::Base
|
91
|
-
acts_as_authentic
|
92
|
-
belongs_to :company
|
93
|
-
has_and_belongs_to_many :projects
|
94
|
-
end
|
95
|
-
|
96
91
|
Authlogic::CryptoProviders::AES256.key = "myafdsfddddddddddddddddddddddddddddddddddddddddddddddd"
|
97
92
|
|
98
93
|
class Employee < ActiveRecord::Base
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authlogic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Johnson of Binary Logic
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- test/libs/mock_cookie_jar.rb
|
120
120
|
- test/libs/mock_request.rb
|
121
121
|
- test/libs/ordered_hash.rb
|
122
|
+
- test/libs/user.rb
|
122
123
|
- test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/config_test.rb
|
123
124
|
- test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/credentials_test.rb
|
124
125
|
- test/orm_adapters_tests/active_record_adapter_tests/acts_as_authentic_tests/logged_in_test.rb
|