Code

Updated show_ldap_error
[gosa.git] / include / functions.inc
index 52f0abbfb5840bd2f77394995836315507d4d064..571f5edc6f259bac812bd02fbb30c3f00e6ac5e9 100644 (file)
@@ -508,14 +508,12 @@ function get_list($filter, $subtreeACL, $base= "", $attributes= array(), $flags=
   if ($flags & GL_SUBSEARCH) {
     $ldap->search ($filter, $attributes);
   } else {
-    $ldap->ls ($filter);
+    $ldap->ls ($filter,$base,$attributes);
   }
 
   /* 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,");
@@ -819,34 +823,6 @@ function get_base_from_people($dn)
 }
 
 
-function get_departments($ignore_dn= "")
-{
-  global $config;
-
-  /* Initialize result hash */
-  $result= array();
-  $result['/']= $config->current['BASE'];
-
-  /* Get list of department objects */
-  $ldap= $config->get_ldap_link();
-  $ldap->cd ($config->current['BASE']);
-  $ldap->search ("(objectClass=gosaDepartment)", array("ou"));
-  while ($attrs= $ldap->fetch()){
-    $dn= $ldap->getDN();
-    if ($dn == $ignore_dn){
-      continue;
-    }
-
-    /* Only assign non-root departments */
-    if ($dn != $result['/']){
-      $result[convert_department_dn($dn)]= $dn;
-    }
-  }
-
-  return ($result);
-}
-
-
 function chkacl($acl, $name)
 {
   /* Look for attribute in ACL */
@@ -865,7 +841,7 @@ function is_phone_nr($nr)
     return (TRUE);
   }
 
-  return preg_match ("/^[0-9 ()+*-]+$/", $nr);
+  return preg_match ("/^[\/0-9 ()+*-]+$/", $nr);
 }
 
 
@@ -907,6 +883,12 @@ function is_uid($uid)
 }
 
 
+function is_ip($ip)
+{
+  return preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/", $ip);
+}
+
+
 function is_id($id)
 {
   if ($id == ""){
@@ -1006,6 +988,16 @@ function print_red()
 
     }
 
+#Test
+if (!preg_match('/[.!?]$/', $string)){
+  $string.= ".";
+}
+$_SESSION['errors'].= "<div style='background-color:white;padding:5px;border:2px solid #706060;width:60%'>".
+"<table style='width:100%' summary='' border=0><tr><td style='vertical-align:top;padding:10px'><img alt='' src='".get_template_path('images/warning.png')."'></td>".
+"<td style='width:100%'><h1>"._("An error occured while checking the formular input")."</h1>".
+"<b>$string</b> "._("Please check your input and fix the contents of the highlighted field. Pess 'OK' to close this message box.")."</td>".
+"</tr><tr><td colspan='2' align='center'><br><input id='edit_ok' type='submit' name='error_ok' style='width:80px' value='"._("OK")."'></td></tr></table></div>";
+
   } else {
     echo "Error: $string\n";
   }
@@ -1020,12 +1012,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];
 
-  //  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();
@@ -1050,7 +1049,12 @@ function gen_locked_message($user, $dn)
   /* Prepare and show template */
   $smarty= get_smarty();
   $smarty->assign ("dn", $dn);
-  $smarty->assign ("message", sprintf(_("You're going to edit the LDAP entry '%s' which appears to be used by '%s'. Please contact the person in order to clarify proceedings."), $dn, "<a href=\"main.php?plug=0&amp;viewid=$uid\">$uid</a>"));
+  if ($remove){
+    $smarty->assign ("action", _("Continue anyway"));
+  } else {
+    $smarty->assign ("action", _("Edit anyway"));
+  }
+  $smarty->assign ("message", sprintf(_("You're going to edit the LDAP entry '%s' which appears to be used by '%s'. Please contact the person in order to clarify proceedings."), "<b>".$dn."</b>", "<b><a href=\"main.php?plug=0&amp;viewid=$uid\">$cn</a></b>"));
 
   return ($smarty->fetch (get_template_path('islocked.tpl')));
 }
@@ -1146,10 +1150,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 (LDAP error: $message)");
+    }
     return TRUE;
   } else {
     return FALSE;
@@ -1951,5 +1959,19 @@ function normalizeLdap($input)
 }
 
 
+/* Resturns the difference between to microtime() results in float  */
+function get_MicroTimeDiff($start , $stop)
+{
+  $a = split("\ ",$start);
+  $b = split("\ ",$stop);
+
+  $secs = $b[1] - $a[1];
+  $msecs= $b[0] - $a[0]; 
+
+  $ret = (float) ($secs+ $msecs);
+  return($ret);
+}
+
+
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>