diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/KolabAdmin/Ldap.php | 4 | ||||
-rw-r--r-- | test/KolabAdmin/Unit/BaseTest.php | 13 |
3 files changed, 20 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2010-02-21 Gunnar Wrobel <p@rdus.de> + + * lib/KolabAdmin/Ldap.php: kolab/issue3499 (Kolab web admin does + not use LDAP escaping) + 2010-01-15 Gunnar Wrobel <wrobel@pardus.de> * www/admin/user/user.php.in: kolab/issue4025 (Users can not diff --git a/lib/KolabAdmin/Ldap.php b/lib/KolabAdmin/Ldap.php index cf4213f..5adf608 100644 --- a/lib/KolabAdmin/Ldap.php +++ b/lib/KolabAdmin/Ldap.php @@ -406,8 +406,8 @@ class KolabLDAP { $entries = ldap_get_entries( $this->connection, $res ); if( $excludedn ) { for ( $i = 0; $i < count( $entries ); $i++ ) { - if( is_null( $entries[$i] ) ) continue; - if( $entries[$i]['dn'] == $excludedn ) continue; + if( !isset($entries[$i]) || is_null( $entries[$i] ) ) continue; + if( KolabLDAP::unescape_dn_value($entries[$i]['dn']) == KolabLDAP::unescape_dn_value($excludedn) ) continue; debug("found ".$entries[$i]['dn'] ); $count++; } diff --git a/test/KolabAdmin/Unit/BaseTest.php b/test/KolabAdmin/Unit/BaseTest.php index 55e7f9b..f7b6f23 100644 --- a/test/KolabAdmin/Unit/BaseTest.php +++ b/test/KolabAdmin/Unit/BaseTest.php @@ -88,6 +88,19 @@ class KolabAdmin_Unit_BaseTest extends PHPUnit_Framework_TestCase ); } + public function testCountmailReturnsZeroOnExistingMailWithEscapedDnCharactersIfDnExcluded() + { + $this->_add($this->_getTestUser(',=,')); + $this->assertEquals( + 0, + $this->ldap->countMail( + $_SESSION['base_dn'], + 'kolabadmin.test.,=,@' . $_SESSION['fqdnhostname'], + 'cn=' . $this->ldap->dn_escape('KolabAdmin TestUser,=,') . ',' . $_SESSION['base_dn'] + ) + ); + } + public function testAddingObjectIsSuccessful() { $this->_add($this->_getTestUser()); |