From 0d6e41b8da2e2a310c8727795bdcf0eb1e015585 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Bernigaud?= <come.bernigaud@opensides.be>
Date: Wed, 30 Jul 2014 15:30:51 +0200
Subject: [PATCH] Fixes #2919 Added missing ldap cd

---
 setup/class_setupStep_Ldap.inc    | 2 +-
 setup/class_setupStep_Migrate.inc | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/setup/class_setupStep_Ldap.inc b/setup/class_setupStep_Ldap.inc
index 05ec191e5..b878e879d 100644
--- a/setup/class_setupStep_Ldap.inc
+++ b/setup/class_setupStep_Ldap.inc
@@ -185,7 +185,7 @@ class Step_Ldap extends setupStep
     } elseif ($this->is_completed) {
       $checked  = check_schema($this->parent->captured_values, "NO RFC CHECK");
       $error    = array();
-      foreach ($this->checked as $check) {
+      foreach ($checked as $check) {
         if (!$check['STATUS']) {
           $error[] = $check['MSG'];
         }
diff --git a/setup/class_setupStep_Migrate.inc b/setup/class_setupStep_Migrate.inc
index 139cf8f41..bd4db9cc8 100644
--- a/setup/class_setupStep_Migrate.inc
+++ b/setup/class_setupStep_Migrate.inc
@@ -362,7 +362,7 @@ class Step_Migrate extends setup_step
     $this->outside_groups = array();
     $this->groups_list = array();;
     while ($attrs = $ldap->fetch()) {
-      $group_db_base = preg_replace("/^[^,]+,".preg_quote($group_ou, '/')."+/i", "", $attrs['dn']);
+      $group_db_base = preg_replace("/^[^,]+,".preg_quote($group_ou, '/')."/i", "", $attrs['dn']);
 
       /* Check if entry is not an addressbook only user
        *  and verify that he is in a valid department
@@ -1049,12 +1049,14 @@ class Step_Migrate extends setup_step
     /* Get collected configuration settings */
     $ldap = $config->get_ldap_link();
 
+    $ldap->cd($config->current['BASE']);
     $ldap->search("(&(objectClass=gosaRole)(gosaAclTemplate=*:all;cmdrw))", array('dn'));
     if ($attrs = $ldap->fetch()) {
       $roledn = $attrs['dn'];
     } else {
       $roledn = 'cn=admin,'.get_ou('aclRoleRDN').$config->current['BASE'];
       if (!$only_ldif) {
+        $ldap->cd($config->current['BASE']);
         $ldap->create_missing_trees(get_ou('aclRoleRDN').$config->current['BASE']);
         $ldap->cd($roledn);
         $attrs_role = array(
@@ -2051,6 +2053,7 @@ class Step_Migrate extends setup_step
      * Get all valid ous, create one if necessary
      ************/
     if (!empty($ou)) {
+      $ldap->cd($config->current['BASE']);
       $ldap->search("($ou)", array('dn'));
       if ($ldap->count() == 0 ) {
         $ldap->create_missing_trees($ou.','.$config->current['BASE']);
-- 
GitLab