Code

Fixed remove from parent, for k=kolab entry.
[gosa.git] / include / functions.inc
index 8529427616bfb13d32406439ab6a2ca4e02501be..c9c50058124e47f6ea7917fbe03e0f95fe42b47c 100644 (file)
@@ -514,8 +514,6 @@ function get_list($filter, $subtreeACL, $base= "", $attributes= array(), $flags=
   /* Check for size limit exceeded messages for GUI feedback */
   if (preg_match("/size limit/i", $ldap->error)){
     $_SESSION['limit_exceeded']= TRUE;
-  } else {
-    $_SESSION['limit_exceeded']= FALSE;
   }
 
   /* Crawl through reslut entries and perform the migration to the
@@ -772,7 +770,13 @@ function get_ou($name)
 {
   global $config;
 
-  $ou= $config->current[$name];
+  /* Preset ou... */
+  if (isset($config->current[$name])){
+    $ou= $config->current[$name];
+  } else {
+    return "";
+  }
+  
   if ($ou != ""){
     if (!preg_match('/^[^=]+=[^=]+/', $ou)){
       return @LDAP::convert("ou=$ou,");
@@ -949,37 +953,42 @@ function print_red()
   if (isset($_SESSION['DEBUGLEVEL'])){
 
     if($_SESSION['LastError'] == $string){
-
+    
       if((!isset($_SESSION['errorsAlreadyPosted'][$string]))){
         $_SESSION['errorsAlreadyPosted'][$string] = 1;
       }
-      $_SESSION['errorsAlreadyPosted'][$string] ++;
+      $_SESSION['errorsAlreadyPosted'][$string]++;
 
     }else{
-      if((!empty($_SESSION['LastError'])) && ($_SESSION['errorsAlreadyPosted'][$_SESSION['LastError']]>1)){
-        $_SESSION['errors'].= "<div align=\"left\" style=\"border-width:5px;".
-          "border-style:solid;border-color:red; background-color:black;".
-          "margin-bottom:10px; padding:8px;\"><table style='width:100%' summary=''><tr><td><img alt=\"\" src=\"".
-          get_template_path('images/warning.png')."\"></td>".
-          "<td width=\"100%\" style=\"text-align:center\"><font color=\"#FFFFFF\">".
-          "<b style='font-size:16px;'>".sprintf(_("Last message repeated %s times."),$_SESSION['errorsAlreadyPosted'][$_SESSION['LastError']])."</b></font></td><td>".
-          "<img alt=\"\"src=\"".get_template_path('images/warning.png').
-          "\"></td></tr></table></div>\n";
-      }
-
       if($string != NULL){
-        $_SESSION['errors'].= "<div align=\"left\" style=\"border-width:5px;".
-          "border-style:solid;border-color:red; background-color:black;".
-          "margin-bottom:10px; padding:8px;\"><table style='width:100%' summary=''><tr><td><img alt=\"\" src=\"".
-          get_template_path('images/warning.png')."\"></td>".
-          "<td width=\"100%\" style=\"text-align:center\"><font color=\"#FFFFFF\">".
-          "<b style='font-size:16px;'>$string</b></font></td><td>".
-          "<img alt=\"\"src=\"".get_template_path('images/warning.png').
-          "\"></td></tr></table></div>\n";
+        if (preg_match("/"._("LDAP error:")."/", $string)){
+          $addmsg= _("Problems with the LDAP server mean that you probably lost the last changes. Please check your LDAP setup for possible errors and try again.");
+          $img= "images/error.png";
+        } else {
+          if (!preg_match('/[.!?]$/', $string)){
+            $string.= ".";
+          }
+          $string= preg_replace('/<br>/', ' ', $string);
+          $img= "images/warning.png";
+          $addmsg= _("Please check your input and fix the error. Press 'OK' to close this message box.");
+        }
+      
+        if(isset($_SESSION['errors']) && strlen($_SESSION['errors'])==0) {
+          $_SESSION['errors'].= "<div style='margin-left:15%;margin-top:100px;".
+            "background-color:white;padding:5px;border:5px solid red;width:55%;z-index:150;".
+            "position:absolute' id='e_layer'><table style='width:100%' summary='' border=0>".
+            "<tr><td style='vertical-align:top;padding:10px'><img alt='' src='".
+            get_template_path($img)."'></td>".
+            "<td style='width:100%'><h1>"._("An error occured while processing your request").
+            "</h1><b>$string</b><br><br>$addmsg</td></tr><tr><td colspan='2' align='center'><br><button ".
+            (($_SESSION['js']==FALSE)?"type='submit'":"type='button'").
+            " style='width:80px' onClick='hide(\"e_layer\")'>".
+            _("OK")."</button></td></tr></table></div>";
+        }
+
       }else{
         return;
       }
-      $_SESSION['errorsAlreadyPosted'] = array();
       $_SESSION['errorsAlreadyPosted'][$string] = 1;
 
     }
@@ -988,7 +997,6 @@ function print_red()
     echo "Error: $string\n";
   }
   $_SESSION['LastError'] = $string; 
-
 }
 
 
@@ -998,14 +1006,19 @@ function gen_locked_message($user, $dn)
 
   $_SESSION['dn']= $dn;
   $ldap= $config->get_ldap_link();
-  $ldap->cat ($user);
+  $ldap->cat ($user, array('uid', 'cn'));
   $attrs= $ldap->fetch();
-  $uid= $attrs["uid"][0];
-  $cn= $attrs["cn"][0];
-  $remove= false;
 
-  //  print_a($_POST);
-  //  print_a($_GET);
+  /* Stop if we have no user here... */
+  if (count($attrs)){
+    $uid= $attrs["uid"][0];
+    $cn= $attrs["cn"][0];
+  } else {
+    $uid= $attrs["uid"][0];
+    $cn= $attrs["cn"][0];
+  }
+  
+  $remove= false;
 
   if((isset($_SESSION['LOCK_VARS_TO_USE']))&&(count($_SESSION['LOCK_VARS_TO_USE']))){
     $_SESSION['LOCK_VARS_USED']  =array();
@@ -1131,10 +1144,14 @@ function show_errors($message)
 }
 
 
-function show_ldap_error($message)
+function show_ldap_error($message, $addon= "")
 {
   if (!preg_match("/Success/i", $message)){
-    print_red (_("LDAP error:")." $message");
+    if ($addon == ""){
+      print_red (_("LDAP error: $message"));
+    } else {
+      print_red ("$addon<br><br><b>"._("LDAP error:")."</b> $message");
+    }
     return TRUE;
   } else {
     return FALSE;
@@ -1204,6 +1221,9 @@ function print_header($image, $headline, $info= "")
     $display.= "&nbsp;";
     $display.= "</div>\n";
   }
+  if (isset($_SESSION['errors'])){
+    $display.= $_SESSION['errors'];
+  }
 
   return ($display);
 }