Code

Updated department listing.
[gosa.git] / setup / class_setupStep_Migrate.inc
index 911e48552002fb452170d2ede333e376e1c202d6..1a82f6d1f8cc5528c84e70a2745808fd5432e381 100644 (file)
@@ -350,7 +350,7 @@ class Step_Migrate extends setup_step
     $valid_deps['/'] = $cv['base'];
     $ldap->search("(&(objectClass=gosaDepartment)(ou=*))",array("dn","ou"));
     while($attrs = $ldap->fetch()){
-      $valid_deps[$attrs['ou'][0]] = $attrs['dn'];
+      $valid_deps[] = $attrs['dn'];
     }
   
     /***********
@@ -364,8 +364,9 @@ class Step_Migrate extends setup_step
       return(false);
     }
 
+    $this->outside_groups = array();
     while($attrs = $ldap->fetch()){
-      $group_db_base = preg_replace("/^[^,]+,".normalizePreg($group_ou)."/","",$attrs['dn']);
+      $group_db_base = preg_replace("/^[^,]+,".normalizePreg($group_ou)."+,/i","",$attrs['dn']);
 
       /* Check if entry is not an addressbook only user
        *  and verify that he is in a valid department
@@ -375,7 +376,7 @@ class Step_Migrate extends setup_step
          ){
         $attrs['selected'] = FALSE;
         $attrs['ldif']     = "";
-        $this->outside_users[base64_encode($attrs['dn'])] = $attrs;
+        $this->outside_groups[base64_encode($attrs['dn'])] = $attrs;
       }
     }
 
@@ -417,7 +418,7 @@ class Step_Migrate extends setup_step
     $valid_deps['/'] = $cv['base'];
     $ldap->search("(&(objectClass=gosaDepartment)(ou=*))",array("dn","ou"));
     while($attrs = $ldap->fetch()){
-      $valid_deps[$attrs['ou'][0]] = $attrs['dn'];
+      $valid_deps[] = $attrs['dn'];
     }
   
     /***********
@@ -441,7 +442,7 @@ class Step_Migrate extends setup_step
     } 
 
     while($attrs = $ldap->fetch()){
-      $people_db_base = preg_replace("/^[^,]+,".normalizePreg($people_ou)."/","",$attrs['dn']);
+      $people_db_base = preg_replace("/^[^,]+,".normalizePreg($people_ou)."/i","",$attrs['dn']);
  
       /* Check if entry is not an addressbook only user 
        *  and verify that he is in a valid department
@@ -674,7 +675,7 @@ class Step_Migrate extends setup_step
     /* Skip GOsa internal departments */
     $skip_dns = array("/".$cv['peopleou']."/","/".$cv['groupou']."/","/^ou=people,/",
         "/^ou=groups,/","/(,|)ou=configs,/","/(,|)ou=systems,/",
-        "/^ou=apps,/","/^ou=mime,/","/^ou=aclroles,/","/^ou=incoming,/",
+        "/(,|)ou=apps,/","/(,|)ou=mime,/","/^ou=aclroles,/","/^ou=incoming,/",
         "/ou=snapshots,/","/(,|)dc=addressbook,/","/^(,|)ou=machineaccounts,/",
         "/(,|)ou=winstations,/");
 
@@ -913,6 +914,9 @@ class Step_Migrate extends setup_step
         if(!in_array($object_attrs['uid'][0],$attrs_admin_group_new['memberUid'])){
           $attrs_admin_group_new['memberUid'][] = $object_attrs['uid'][0];
         }
+       if ($cv['rfc2307bis']){
+         $attrs_admin_group_new['member'][] = $dn;
+       }
 
         if($only_ldif){
           $this->acl_create_changes = _("Appending user to group administrational group:")." \n";
@@ -931,7 +935,7 @@ class Step_Migrate extends setup_step
           }
         }
         
-      }else{
+      } else {
 
         $group_ou = trim($cv['groupou']);
         if(!empty($group_ou)){
@@ -939,7 +943,12 @@ class Step_Migrate extends setup_step
         }
 
         $new_group_dn = "cn=GOsa Administrators,".$group_ou.$cv['base'];
-        $new_group_attrs['objectClass'] = array("gosaObject","posixGroup");
+       if ($cv['rfc2307bis']){
+               $new_group_attrs['objectClass'] = array("gosaObject","posixGroup", "groupOfNames");
+               $new_group_attrs['member'][] = $dn;
+       } else {
+               $new_group_attrs['objectClass'] = array("gosaObject","posixGroup");
+       }
         $new_group_attrs['cn'] = "GOsa Administrators";
         $new_group_attrs['gosaSubtreeACL'] = ":all";
         $new_group_attrs['gidNumber'] = "999";
@@ -1038,7 +1047,7 @@ class Step_Migrate extends setup_step
     $ldap->cd($dn);  
     $res = $ldap->add($new_user);
     $this->acl_create_selected = $dn;
-    $this->create_admin();
+    $this->create_admin(FALSE, $dn);
     
     if(!$res){
       print_red($ldap->get_error());
@@ -1081,7 +1090,7 @@ class Step_Migrate extends setup_step
 
 
           /* Check if there are references to this object */
-          $ldap->search("(&(member=".$dn.")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
+          $ldap->search("(&(member=".LDAP::prepare4filter($dn).")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
           $refs = "";
           while($attrs = $ldap->fetch()){
             $ref_dn = $attrs['dn'];
@@ -1129,7 +1138,7 @@ class Step_Migrate extends setup_step
 
 
           /* Check if there are references to this object */
-          $ldap->search("(&(member=".$dn.")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
+          $ldap->search("(&(member=".LDAP::prepare4filter($dn).")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
           $refs = "";
           while($attrs = $ldap->fetch()){
             $ref_dn = $attrs['dn'];
@@ -1176,7 +1185,7 @@ class Step_Migrate extends setup_step
           $this->outside_users[$b_dn]['ldif'] = _("User will be moved from").":<br>\t".$dn."<br>"._("to").":<br>\t".$d_dn;
 
           /* Check if there are references to this object */
-          $ldap->search("(&(member=".$dn.")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
+          $ldap->search("(&(member=".LDAP::prepare4filter($dn).")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
           $refs = "";
           while($attrs = $ldap->fetch()){
             $ref_dn = $attrs['dn'];
@@ -1870,7 +1879,7 @@ class Step_Migrate extends setup_step
      /* Update object references in gosaGroupOfNames */
     $ogs_to_fix = array();
     $ldap->cd($cv['base']);
-    $ldap->search('(&(objectClass=gosaGroupOfNames)(member='.@LDAP::fix($source).'))', array('cn','member'));
+    $ldap->search('(&(objectClass=gosaGroupOfNames)(member='.@LDAP::prepare4filter($source).'))', array('cn','member'));
     while ($attrs= $ldap->fetch()){
       $dn = $attrs['dn'];
       $attrs = $this->cleanup_array($attrs);
@@ -1921,5 +1930,5 @@ class Step_Migrate extends setup_step
   }
 }
 
-// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+//vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>