Code

Added remove and activate script button
[gosa.git] / include / functions_setup.inc
index 7d5582b06223aa3e1516d731c283fc1582978496..7d41ffd9586ea098f34505e041639ae356a5199a 100644 (file)
@@ -30,9 +30,9 @@ function view_schema_check($table)
 }
 
 
-function is_schema_readable($server, $admin, $password)
+function is_schema_readable($server, $admin, $password, $follow_referrals=FALSE, $tls=FALSE)
 {
-  $ldap = new LDAP($admin,$password,$server);
+  $ldap = new LDAP($admin, $password, $server, $follow_referrals, $tls);
   $tmp = $ldap->get_objectclasses();
 
   if(count($tmp)){
@@ -41,7 +41,7 @@ function is_schema_readable($server, $admin, $password)
   return(false);
 } 
 
-function schema_check($server, $admin, $password, $aff=0,$CalledByIndexPhP=false)
+function schema_check($server, $admin, $password, $follow_referrals=FALSE, $tls=FALSE, $aff=0, $CalledByIndexPhP=false)
 {
   global $config;
 
@@ -78,7 +78,7 @@ function schema_check($server, $admin, $password, $aff=0,$CalledByIndexPhP=false
       );
 
   /* Get objectclasses */
-  $ldap = new LDAP($admin,$password, $server);
+  $ldap = new LDAP($admin,$password, $server, $follow_referrals, $tls);
   $objectclasses = $ldap->get_objectclasses(); 
   if(count($objectclasses) == 0){
     return (array(array("msg" => _("Can't get schema information from server. No schema check possible!"), "status" => FALSE)));
@@ -764,6 +764,14 @@ function show_setup_page3($withoutput = true)
 function show_setup_page4($withoutput = true)
 {
   $smarty= get_smarty();      
+  $checkvars = array("location", "admin", "password", "peopleou", "base",
+      "peopledn", "arr_crypts", "uidbase","errorlvl");
+
+  $fault     = false;              
+  $uri       = $_SESSION['ldapconf']['uri'];
+  $ldapconf  = $_SESSION['ldapconf'];
+  $arr_crypts= array();
+  $temp      = "";
 
   /* check POST data */
   if(isset($_POST['check'])) {
@@ -777,7 +785,7 @@ function show_setup_page4($withoutput = true)
         continue;
       }
 
-      if((isset($_POST[$key]))&&($_POST[$key]!="")) {
+      if((isset($_POST[$key]))&&(!empty($_POST[$key]))) {
         $_SESSION['ldapconf'][$key] = $_POST[$key];
       } else {
         if($withoutput) {
@@ -803,14 +811,6 @@ function show_setup_page4($withoutput = true)
   }
   require_once("class_password-methods.inc");
 
-  $fault     = false;              
-  $uri       = $_SESSION['ldapconf']['uri'];
-  $ldapconf  = $_SESSION['ldapconf'];
-  $arr_crypts= array();
-  $temp      = "";
-  $checkvars = array("location", "admin", "password", "peopleou", "base",
-      "peopledn", "arr_crypts", "mail", "uidbase","errorlvl");
-
   if(!isset($_SESSION['ldapconf']['arr_cryptkeys'])) {
     require_once("class_password-methods.inc");
     $tmp= passwordMethod::get_available_methods_if_not_loaded();
@@ -882,6 +882,13 @@ function show_setup_page4($withoutput = true)
   if(!isset($_SESSION['ldapconf']['mail'])){
     $_SESSION['ldapconf']['mail']= 0;
   }
+  if(!isset($_SESSION['ldapconf']['follow_referrals'])){
+    $_SESSION['ldapconf']['follow_referrals']= FALSE;
+  }
+  if(!isset($_SESSION['ldapconf']['tls'])){
+    $_SESSION['ldapconf']['tls']= FALSE;
+  }
+
   $tmp= array_flip($_SESSION['ldapconf']['arr_cryptkeys']);
   if(!isset($_SESSION['ldapconf']['arr_crypts'])){
     $_SESSION['ldapconf']['arr_crypts']   = $tmp['md5'];
@@ -897,14 +904,22 @@ function show_setup_page4($withoutput = true)
   if(isset($_POST['check']) || (isset($_POST['admin'])) && isset($_POST['password'])) {
     $ldap= new LDAP($_SESSION['ldapconf']['admin'],
         $_SESSION['ldapconf']['password'],
-        $_SESSION['ldapconf']['uri']);
+        $_SESSION['ldapconf']['uri'],
+        $_SESSION['ldapconf']['follow_referrals'],
+        $_SESSION['ldapconf']['tls']);
 
     $m= schema_check($_SESSION['ldapconf']['uri'],
         $_SESSION['ldapconf']['admin'],
-        $_SESSION['ldapconf']['password']);
+        $_SESSION['ldapconf']['password'],
+        $_SESSION['ldapconf']['follow_referrals'],
+        $_SESSION['ldapconf']['tls']);
+
     $_SESSION['classes']= $m;
 
-    if(!is_schema_readable($ldapconf['uri'],$ldapconf['admin'],$ldapconf['password'])){
+    //TODO: Ask user for referrals and TLS config options during setup. They are initialized to false at the moment:
+    $ldapconf['follow_referrals'] = false;
+    $ldapconf['tls'] = false;
+    if(!is_schema_readable($ldapconf['uri'], $ldapconf['admin'], $ldapconf['password'], $ldapconf['follow_referrals'], $ldapconf['tls'])){
       if($withoutput){
         print_red(_("Can't read schema informations, GOsa needs to know your schema setup. Please verify that it is readable for GOsa"));
       }
@@ -954,7 +969,12 @@ function show_setup_page5($withoutput=true)
   $smarty->assign("webgroup", $info['name']);
   $smarty->assign("path", CONFIG_DIR);
   $message= "<table summary=\"\" class=\"check\">";
-  $m= schema_check($ldapconf['uri'], $ldapconf['admin'], $ldapconf['password'],1);
+
+  //TODO:Ask user for referral and TLS config options during setup. They are initialized to false at the moment:
+  $ldapconf['follow_referrals'] = false;
+  $ldapconf['tls'] = false;
+
+  $m= schema_check($ldapconf['uri'], $ldapconf['admin'], $ldapconf['password'], $ldapconf['follow_referrals'], $ldapconf['tls'], 1);
 
   if($withoutput) {
     $smarty->assign ("schemas", view_schema_check($m));
@@ -998,69 +1018,48 @@ function create_user_for_setup($withoutput=true)
      We check that, if this user or group is missing we ask for creating them */
   $ldap= new LDAP($_SESSION['ldapconf']['admin'],    $_SESSION['ldapconf']['password'],   $_SESSION['ldapconf']['uri']);
 
-  /* 
-  Now we are testing for a group, with the rights :all 
-  */
-  
+  /* Now we are testing for a group, with the rights :all  */
   $ldap->cd($ldapconf['base']);
   $ldap->search("(&(objectClass=gosaObject)(gosaSubtreeACL=:all))");
 
   $group_cnt  = $ldap->count();
   $data       = $ldap->fetch();
 
-//  $str_there  = "Searching for Aminitrative users <br><br>";
-
-  /* 
-  We need to create administrative user and group  because theres no group found 
-  */
+  /* We need to create administrative user and group  because there was no group found */
   if($group_cnt < 1) {
     
-    /* 
-    Set var to create user 
-    */
-//    $str_there  =   "no group found<br>";
-
     $need_to_create_group = true;
     $need_to_create_user  = true;
 
-
     /* Output error */
-    if(($withoutput)&&(!isset($_POST['new_admin']))){
-      print_red(_("You're missing an administrative account for GOsa, you'll not be able to administrate anything!"));
-    }
+#    if(($withoutput)&&(!isset($_POST['new_admin']))){
+#      print_red(_("You're missing an administrative account for GOsa, you'll not be able to administrate anything!"));
+#    }
   } else {
     
-//    $str_there = "Group found <br>".$data['dn'];    
-
     $need_to_create_group = false;
     $ldap->clearResult();
    
-    /* We found an Administrative Group, is there a user, too */
+    /* We found an Administrative Group, is there a user too ? */
     if(isset($data['memberUid'][0])) {
-      $str = "uid=".$data['memberUid']['0'];
+      $str      = "uid=".$data['memberUid']['0'];
       $ldap->search("(&(objectClass=gosaAccount)(objectClass=person)(".$str."))");
-      $data2   = $ldap->fetch();
+      $data2    = $ldap->fetch();
   
       /* We must create a user */
       if (($ldap->count() < 1)||(!isset($data2))) {
-//        $str_there.="Missing user";
-        
         $need_to_create_user = true;
-      
-        if(($withoutput)&&(!isset($_POST['new_admin']))){
-          print_red(_("You're missing an administrative account for GOsa, you'll not be able to administrate anything!"));
-        }
+#        if(($withoutput)&&(!isset($_POST['new_admin']))){
+#          print_red(_("You're missing an administrative account for GOsa, you'll not be able to administrate anything!"));
+#        }
       }else {
-//        $str_there.="<br>User found <br>".$data2['dn'];
         $need_to_create_user = false;
       }
     } else {
       $need_to_create_user=true;
-      if(($withoutput)&&(!isset($_POST['new_admin']))){
-          print_red(_("You're missing an administrative account for GOsa, you'll not be able to administrate anything!"));
-        }   
-//      $str_there.="<br>No User found <br>";
+#      if(($withoutput)&&(!isset($_POST['new_admin']))){
+#          print_red(_("You're missing an administrative account for GOsa, you'll not be able to administrate anything!"));
+#        }   
     }
   }
 
@@ -1110,8 +1109,7 @@ function create_user_for_setup($withoutput=true)
         $ldap->cd($dn);
         $ldap->add($arr);
         if($ldap->error!="Success"){
-          print_red($ldap->error);
-          print_red("Can't create user, and / or Group, possibly this problem  depends on an empty LDAP server. Check your configuration and try again!");
+          show_ldap_error($ldap->get_error(),_("User and/or group could not be created, please check your configuration twice !"));
         }
       }    
     }
@@ -1154,7 +1152,7 @@ function create_user_for_setup($withoutput=true)
     return(true);
   } else {
 
-    if((!isset($create_user))||(!($create_user))) {
+    if((!isset($need_to_create_user))||(!($need_to_create_user))) {
       $smarty->assign ("content", get_template_path('setup_useradmin.tpl'));
       $smarty->assign("exists",true);
     } else {