lib/Auth
Aleksander Machniak
machniak at kolabsys.com
Thu Dec 20 14:05:37 CET 2012
lib/Auth/LDAP.php | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
New commits:
commit 434e5cf7e876d8da5f55c0c51d90b7211ec2f7a7
Author: Aleksander Machniak <alec at alec.pl>
Date: Thu Dec 20 14:04:51 2012 +0100
Fix detecting base_dn for created objects (Bug #1464)
diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php
index 0371834..60a870c 100644
--- a/lib/Auth/LDAP.php
+++ b/lib/Auth/LDAP.php
@@ -679,7 +679,7 @@ class LDAP extends Net_LDAP3 {
$sql = $db->fetch_assoc($db->query("SELECT `key` FROM {$type}_types WHERE id = ?", $typeid));
// Check if the type has a specific base DN specified.
- $base_dn = $this->_subject_base_dn($sql['key'] . '_' . $type);
+ $base_dn = $this->_subject_base_dn($sql['key'] . '_' . $type, true);
}
if (empty($base_dn)) {
@@ -746,8 +746,19 @@ class LDAP extends Net_LDAP3 {
}
}
- private function _subject_base_dn($subject)
+ private function _subject_base_dn($subject, $strict = false)
{
+ $subject_base_dn = $this->conf->get_raw($this->domain, $subject . "_base_dn");
+
+ if (empty($subject_base_dn)) {
+ $subject_base_dn = $this->conf->get_raw("ldap", $subject . "_base_dn");
+ }
+
+ if (empty($subject_base_dn) && $strict) {
+ $this->_log(LOG_DEBUG, "subject_base_dn for subject $subject not found");
+ return null;
+ }
+
// Attempt to get a configured base_dn
$base_dn = $this->conf->get($this->domain, "base_dn");
@@ -755,21 +766,11 @@ class LDAP extends Net_LDAP3 {
$base_dn = $this->domain_root_dn($this->domain);
}
- $this->_log(LOG_DEBUG, __FILE__ . "::" . __FUNCTION__ . " using base_dn $base_dn");
-
- if (empty($subject)) {
- return $base_dn;
- } else {
- $subject_base_dn = $this->conf->get_raw($this->domain, $subject . "_base_dn");
- if (empty($subject_base_dn)) {
- $subject_base_dn = $this->conf->get_raw("ldap", $subject . "_base_dn");
- }
- if (!empty($subject_base_dn)) {
- $base_dn = $this->conf->expand($subject_base_dn, array("base_dn" => $base_dn));
- }
+ if (!empty($subject_base_dn)) {
+ $base_dn = $this->conf->expand($subject_base_dn, array("base_dn" => $base_dn));
}
- $this->_log(LOG_DEBUG, "subject_base_dn for subject $subject results in $base_dn");
+ $this->_log(LOG_DEBUG, "subject_base_dn for subject $subject is $base_dn");
return $base_dn;
}
More information about the commits
mailing list