diff --git a/library/Icinga/Protocol/Ldap/Connection.php b/library/Icinga/Protocol/Ldap/Connection.php index 531a399c8..6fa41e2aa 100644 --- a/library/Icinga/Protocol/Ldap/Connection.php +++ b/library/Icinga/Protocol/Ldap/Connection.php @@ -307,7 +307,7 @@ class Connection $results = @ldap_search( $this->ds, $base, - (string) $query, + $query->create(), $fields, 0, // Attributes and values 0 // No limit - at least where possible @@ -619,7 +619,7 @@ class Connection $result = @ldap_read( $ds, '', - (string) $query, + $query->create(), $query->listFields() ); diff --git a/library/Icinga/Protocol/Ldap/Query.php b/library/Icinga/Protocol/Ldap/Query.php index ca8f5519f..462c83d61 100644 --- a/library/Icinga/Protocol/Ldap/Query.php +++ b/library/Icinga/Protocol/Ldap/Query.php @@ -4,8 +4,6 @@ namespace Icinga\Protocol\Ldap; -use Icinga\Exception\IcingaException; - /** * Search class * @@ -84,7 +82,7 @@ class Query public function limit($count = null, $offset = null) { if (! preg_match('~^\d+~', $count . $offset)) { - throw new IcingaException( + throw new Exception( 'Got invalid limit: %s, %s', $count, $offset @@ -302,21 +300,11 @@ class Query * * @string */ - public function __toString() - { - return $this->render(); - } - - /** - * Returns the LDAP filter that will be applied - * - * @string - */ - protected function render() + public function create() { $parts = array(); if (! isset($this->filters['objectClass']) || $this->filters['objectClass'] === null) { - // throw new IcingaException('Object class is mandatory'); + throw new Exception('Object class is mandatory'); } foreach ($this->filters as $key => $value) { $parts[] = sprintf( diff --git a/test/php/library/Icinga/Protocol/Ldap/QueryTest.php b/test/php/library/Icinga/Protocol/Ldap/QueryTest.php index b710a0934..f3fa2c727 100644 --- a/test/php/library/Icinga/Protocol/Ldap/QueryTest.php +++ b/test/php/library/Icinga/Protocol/Ldap/QueryTest.php @@ -109,10 +109,10 @@ class QueryTest extends BaseTestCase $this->assertEquals('testIntColumn', $cols[0][0]); } - public function test__toString() + public function testCreateQuery() { $select = $this->prepareSelect(); $res = '(&(objectClass=dummyClass)(testIntColumn=1)(testStringColumn=test)(testWildcard=abc*))'; - $this->assertEquals($res, (string) $select); + $this->assertEquals($res, $select->create()); } }