Code

display schema problems in a single dialog
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 25 May 2010 12:05:18 +0000 (12:05 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 25 May 2010 12:05:18 +0000 (12:05 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@18684 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-core/include/class_configRegistry.inc

index 6bf66a195988f402c2fdede98b8d5e897695d81f..8f882a58eb469f8276fa745214e7694f4e4320bd 100644 (file)
@@ -74,28 +74,34 @@ class configRegistry{
         }
 
         // Check schema requirements now
+        $missing = $invalid = array();
         foreach($this->pluginRequirements['ldapSchema'] as $cname => $requirements){
             foreach($requirements as $oc => $version){
                 if(!$this->ocAvailable($oc)){
-                    if($displayMessage){
-                        msg_dialog::display(_("Schema validation error"), 
-                                sprintf(_("The objectClass '%s' which is required for plugin '%s' is not availabe!"),
-                                    bold($oc),bold($cname)), 
-                                ERROR_DIALOG);
-                    }
+                    $missing[] = $oc;
                 }elseif(!empty($version)){
-
                     $currentVersion = $this->getObjectClassVersion($oc);
                     if(!empty($currentVersion) && !$this->ocVersionMatch($version, $currentVersion)){
-                        if($displayMessage){
-                            msg_dialog::display(_("Schema validation error"), 
-                                    sprintf(_("The objectClass '%s' which is required for plugin '%s' has version %s but %s is required!"),bold($oc),bold($cname),bold($currentVersion),bold($version)), 
-                                    ERROR_DIALOG);
+                        if($currentVersion == -1){
+                            $currentVersion = _("unknown");
                         }
+                        $invalid[] = sprintf(_("%s has version %s but %s required!"), bold($oc),bold($currentVersion),bold($version));
                     }
                 }
             }
         }
+
+        if($displayMessage && count($missing)){
+            msg_dialog::display(_("Schema validation error"), 
+                    sprintf(_("The following objectClasses are missing! %s"), msgPool::buildList($missing)),
+                    ERROR_DIALOG);
+        }    
+        if($displayMessage && count($invalid)){
+            msg_dialog::display(_("Schema validation error"), 
+                    sprintf(_("The following objectClasses do not match the version requirements! %s"), msgPool::buildList($invalid)),
+                    ERROR_DIALOG);
+        }    
+
         $this->schemaCheckFinished =TRUE;
     }