X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_workstationStartup.inc;h=07a925b61fed2d0d44e97c36b1ccb5ff5f66c9ac;hb=e99742e600fa6fa4b514d9209ee7641ea51260c5;hp=7748e2951745af000a9e613fb89eab9bd9123c48;hpb=4c8d33596a9224670c47a831ca0602a8e753a4ab;p=gosa.git diff --git a/plugins/admin/systems/class_workstationStartup.inc b/plugins/admin/systems/class_workstationStartup.inc index 7748e2951..07a925b61 100644 --- a/plugins/admin/systems/class_workstationStartup.inc +++ b/plugins/admin/systems/class_workstationStartup.inc @@ -20,7 +20,7 @@ class workstartup extends plugin var $FAIclass = array(); var $FAIclasses = array(); var $FAIclassInfo = array(); - var $FAIdebianMirror = array(); + var $FAIdebianMirror = "auto"; /* attribute list for save action */ @@ -49,16 +49,29 @@ class workstartup extends plugin $this->FAIdebianMirrors = array(); $ldap = $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); - $ldap->search("(objectClass=FAIrepository)",array("FAIdebianMirror")); + $ldap->search("(objectClass=FAIrepositoryServer)",array("FAIrepository")); /* attach all attributes with "index => cn" to avoid multiple entries */ - $this->FAIdebianMirrors['auto']=_("automatic"); + $ret = array(); while($attr = $ldap->fetch()){ - if(isset($attr['FAIdebianMirror'])){ - $this->FAIdebianMirrors[$attr['FAIdebianMirror'][0]]=$attr['FAIdebianMirror'][0]; + if(isset($attr['FAIrepository'])){ + + unset($attr['FAIrepository']['count']); + + foreach($attr['FAIrepository'] as $rep){ + $tmp = split("\|",$rep); + $str = ""; + if(count($tmp)==4){ + $sections = split(",",$tmp[3]); + $str = $tmp[0]; + $ret[$str]=$sections; + } + } } - } - + } + ksort($ret); + $this->FAIdebianMirrors = $ret; + /* Get arrays */ foreach (array("gotoModules", "gotoAutoFs", "gotoFilesystem") as $val){ if (isset($this->attrs["$val"]["count"])){ @@ -111,7 +124,7 @@ class workstartup extends plugin /* Search all FAI objects */ $ldap->search("(| (objectClass=FAIpackageList)(objectClass=FAItemplate) (objectClass=FAIvariable)(objectClass=FAIscript)(objectClass=FAIhook)(objectClass=FAIprofile) - (objectClass=FAIpartitionTable))",array("objectClass","cn"),true); + (objectClass=FAIpartitionTable))",array("*"),true); /* Sort all entries, and attach elementtype. * To be able to show the types in the listbox. */ @@ -120,6 +133,7 @@ class workstartup extends plugin if(in_array('FAIpackageList',$attr['objectClass'])){ $tmp2[$cn]['FAIpackageList']['obj'] = 'FAIpackageList'; $tmp2[$cn]['FAIpackageList']['kzl'] = 'Pl'; + $tmp2[$cn]['FAIpackageList']['sec'] = $attr['FAIdebianSection']; $this->FAIclasses[$attr['cn'][0]]=$attr['cn'][0]; } if(in_array('FAItemplate',$attr['objectClass'])){ @@ -153,6 +167,9 @@ class workstartup extends plugin $this->FAIclasses[$attr['cn'][0]]=$attr['cn'][0]; } } + if(is_array($this->FAIclasses)){ + natcasesort($this->FAIclasses); + } $this->FAIclassInfo = $tmp2; @@ -180,6 +197,7 @@ class workstartup extends plugin foreach($this->FAIclasses as $class){ $str = ""; $skip = false; + if(isset($this->FAIclassInfo[$class])){ foreach($this->FAIclassInfo[$class] as $objs){ $str .= $objs['kzl']." "; @@ -387,6 +405,7 @@ class workstartup extends plugin $str_empty = "  \"\""; $i = 1; + foreach($this->FAIclass as $class){ if($i==1){ $str = $str_empty.$str_down.$str_remove; @@ -404,7 +423,7 @@ class workstartup extends plugin } $smarty->assign("FAIScriptlist",$div->DrawList()); - $smarty->assign("FAIdebianMirrors",$this->FAIdebianMirrors); + $smarty->assign("FAIdebianMirrors",$this->getFAIdebianMirrors()); $smarty->assign("FAIclasses",$this->selectFriendlyClasses()); $smarty->assign("FAIclassesKeys",array_flip($this->selectFriendlyClasses())); $smarty->assign("FAIclassKeys",$this->FAIclass); @@ -441,6 +460,41 @@ class workstartup extends plugin } + function getFAIdebianMirrors() + { + $ret = array(); + $ret['auto']=_("automatic"); + $secs = array(); + if(is_array($this->FAIclass)){ + foreach($this->FAIclass as $classes){ + if(isset($this->FAIclassInfo[ $classes]['FAIpackageList']['sec'])){ + if(isset($this->FAIclassInfo[ $classes]['FAIpackageList']['sec']['count'])){ + unset($this->FAIclassInfo[ $classes]['FAIpackageList']['sec']['count']); + } + if(is_array($this->FAIclassInfo[ $classes]['FAIpackageList']['sec'])){ + foreach($this->FAIclassInfo[ $classes]['FAIpackageList']['sec'] as $sec => $value){ + $secs[$value]= $value; + } + } + } + } + } + if(is_array($this->FAIdebianMirrors)){ + foreach($this->FAIdebianMirrors as $mirr=>$sections){ + $allok = true; + foreach($secs as $sec){ + if(!in_array($sec,$sections)){ + $allok = false; + } + } + if($allok){ + $ret[$mirr]=$mirr; + } + } + } + return($ret); + } + /* Save data to object */ function save_object() {