From codesite-noreply at google.com Mon Apr 21 20:58:23 2008 From: codesite-noreply at google.com (codesite-noreply at google.com) Date: Mon, 21 Apr 2008 17:58:23 -0700 Subject: [Ruby-activeldap-commit] [ruby-activeldap commit] r710 - in trunk: lib/active_ldap test Message-ID: <0016368e1d8a044b6bb68fb26542988a@google.com> Author: koutou Date: Mon Apr 21 17:58:13 2008 New Revision: 710 Modified: trunk/lib/active_ldap/base.rb trunk/test/test_base.rb Log: * normalize dn_attribute. Reported by Iain Pople. Thanks!!! Modified: trunk/lib/active_ldap/base.rb ============================================================================== --- trunk/lib/active_ldap/base.rb (original) +++ trunk/lib/active_ldap/base.rb Mon Apr 21 17:58:13 2008 @@ -603,7 +603,7 @@ alias_method(:dn_attribute_of_class, :dn_attribute) def dn_attribute - @dn_attribute || dn_attribute_of_class + to_real_attribute_name(@dn_attribute || dn_attribute_of_class) end def default_search_attribute @@ -1211,7 +1211,7 @@ end def collect_all_attributes(data) - dn_attr = to_real_attribute_name(dn_attribute) + dn_attr = dn_attribute dn_value = data[dn_attr] attributes = [] Modified: trunk/test/test_base.rb ============================================================================== --- trunk/test/test_base.rb (original) +++ trunk/test/test_base.rb Mon Apr 21 17:58:13 2008 @@ -1,10 +1,29 @@ # -*- coding: utf-8 -*- + require 'al-test-utils' class TestBase < Test::Unit::TestCase include AlTestUtils priority :must + def test_normalize_dn_attribute + make_ou("Ous") + ou_class = Class.new(ActiveLdap::Base) + ou_class.ldap_mapping(:dn_attribute => "OU", + :prefix => "ou=OUS", + :classes => ["top", "organizationalUnit"]) + ou_class.new("ou1").save! + ou_class.new("ou2").save! + + ou1 = ou_class.find("ou1") + assert_equal("ou1", ou1.ou) + assert_equal("ou=ou1,#{ou_class.base}", ou1.dn) + ou2 = ou_class.find("ou2") + assert_equal("ou2", ou2.ou) + assert_equal("ou=ou2,#{ou_class.base}", ou2.dn) + end + + priority :normal def test_excluded_classes mapping = {:classes => ["person"]} person_class = Class.new(@user_class) @@ -36,7 +55,6 @@ end end - priority :normal def test_new_with_dn cn = "XXX" dn = "cn=#{cn},#{@user_class.base}" From codesite-noreply at google.com Sat Apr 26 03:21:14 2008 From: codesite-noreply at google.com (codesite-noreply at google.com) Date: Sat, 26 Apr 2008 00:21:14 -0700 Subject: [Ruby-activeldap-commit] [ruby-activeldap commit] r711 - in trunk: lib/active_ldap/schema test Message-ID: <0016367ed66c16ab63044bc187ce@google.com> Author: koutou Date: Sat Apr 26 00:20:46 2008 New Revision: 711 Modified: trunk/lib/active_ldap/schema/syntaxes.rb trunk/test/test_syntax.rb Log: * lib/active_ldap/schema/syntaxes.rb, test/test_syntax.rb: accept blank value. Modified: trunk/lib/active_ldap/schema/syntaxes.rb ============================================================================== --- trunk/lib/active_ldap/schema/syntaxes.rb (original) +++ trunk/lib/active_ldap/schema/syntaxes.rb Sat Apr 26 00:20:46 2008 @@ -391,11 +391,13 @@ end end - class TelephoneNumber < Base + class TelephoneNumber < PrintableString SYNTAXES["1.3.6.1.4.1.1466.115.121.1.50"] = self - def validate(value) - PrintableString.new.validate(value) + private + def validate_normalized_value(value, original_value) + return nil if value.blank? + super end end end Modified: trunk/test/test_syntax.rb ============================================================================== --- trunk/test/test_syntax.rb (original) +++ trunk/test/test_syntax.rb Sat Apr 26 00:20:46 2008 @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + require 'al-test-utils' class TestSyntax < Test::Unit::TestCase @@ -283,8 +285,7 @@ def test_telephone_number_validate assert_valid("+1 512 305 0280", "Telephone Number") - - assert_invalid(_("empty string"), "", "Telephone Number") + assert_valid("", "Telephone Number") value = "+1 5!2 305 0280" params = [value.inspect, "!"] From codesite-noreply at google.com Sat Apr 26 04:56:19 2008 From: codesite-noreply at google.com (codesite-noreply at google.com) Date: Sat, 26 Apr 2008 01:56:19 -0700 Subject: [Ruby-activeldap-commit] [ruby-activeldap commit] r712 - trunk/lib/active_ldap Message-ID: <001636af034225e445044bc2dbef@google.com> Author: koutou Date: Sat Apr 26 01:55:47 2008 New Revision: 712 Modified: trunk/lib/active_ldap/base.rb Log: * hash doesn't raise exception. Modified: trunk/lib/active_ldap/base.rb ============================================================================== --- trunk/lib/active_ldap/base.rb (original) +++ trunk/lib/active_ldap/base.rb Sat Apr 26 01:55:47 2008 @@ -541,7 +541,11 @@ # [ User.find("a"), User.find("b"), User.find("c") ] & # [ User.find("a"), User.find("d") ] # => [ User.find("a") ] def hash - dn.hash + if dn_attribute + dn.hash + else + super + end end def may From codesite-noreply at google.com Sat Apr 26 05:00:19 2008 From: codesite-noreply at google.com (codesite-noreply at google.com) Date: Sat, 26 Apr 2008 02:00:19 -0700 Subject: [Ruby-activeldap-commit] [ruby-activeldap commit] r713 - trunk/lib/active_ldap Message-ID: <0016e642d64a797aa7044bc2e9ca@google.com> Author: koutou Date: Sat Apr 26 01:59:05 2008 New Revision: 713 Modified: trunk/lib/active_ldap/base.rb trunk/lib/active_ldap/validations.rb Log: * ensure to return dn_attribute. Modified: trunk/lib/active_ldap/base.rb ============================================================================== --- trunk/lib/active_ldap/base.rb (original) +++ trunk/lib/active_ldap/base.rb Sat Apr 26 01:59:05 2008 @@ -541,11 +541,7 @@ # [ User.find("a"), User.find("b"), User.find("c") ] & # [ User.find("a"), User.find("d") ] # => [ User.find("a") ] def hash - if dn_attribute - dn.hash - else - super - end + dn.hash end def may @@ -607,7 +603,8 @@ alias_method(:dn_attribute_of_class, :dn_attribute) def dn_attribute - to_real_attribute_name(@dn_attribute || dn_attribute_of_class) + _dn_attribute = @dn_attribute || dn_attribute_of_class + to_real_attribute_name(_dn_attribute) || _dn_attribute end def default_search_attribute Modified: trunk/lib/active_ldap/validations.rb ============================================================================== --- trunk/lib/active_ldap/validations.rb (original) +++ trunk/lib/active_ldap/validations.rb Sat Apr 26 01:59:05 2008 @@ -37,12 +37,14 @@ validate :validate_ldap_values class << self - def evaluate_condition_with_active_ldap_support(condition, entry) - evaluate_condition_without_active_ldap_support(condition, entry) - rescue ActiveRecord::ActiveRecordError - raise Error, $!.message + if method_defined?(:evaluate_condition) + def evaluate_condition_with_active_ldap_support(condition, entry) + evaluate_condition_without_active_ldap_support(condition, entry) + rescue ActiveRecord::ActiveRecordError + raise Error, $!.message + end + alias_method_chain :evaluate_condition, :active_ldap_support end - alias_method_chain :evaluate_condition, :active_ldap_support end def save_with_active_ldap_support! @@ -58,7 +60,15 @@ rescue ActiveRecord::ActiveRecordError raise Error, $!.message end - alias_method_chain :run_validations, :active_ldap_support + if private_method_defined?(:run_validations) + alias_method_chain :run_validations, :active_ldap_support + else + alias_method(:run_callbacks_with_active_ldap_support, + :run_validations_with_active_ldap_support) + alias_method_chain :run_callbacks, :active_ldap_support + alias_method(:run_validations_without_active_ldap_support, + :run_callbacks_without_active_ldap_support) + end end end