X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Ffunctions_setup.inc;h=7d41ffd9586ea098f34505e041639ae356a5199a;hb=76c4c4c531f38b9ab5a8cd0e49cc34c91260c354;hp=7d5582b06223aa3e1516d731c283fc1582978496;hpb=2277cb2e30195dddd0dc2e918ff59dd3c6730a2a;p=gosa.git diff --git a/include/functions_setup.inc b/include/functions_setup.inc index 7d5582b06..7d41ffd95 100644 --- a/include/functions_setup.inc +++ b/include/functions_setup.inc @@ -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= ""; - $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

"; - - /* - 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
"; - $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
".$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.="
User found
".$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.="
No User found
"; +# 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 {