X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_workstationStartup.inc;h=07a925b61fed2d0d44e97c36b1ccb5ff5f66c9ac;hb=e99742e600fa6fa4b514d9209ee7641ea51260c5;hp=a5cfa2063def19c0e042c88d59850b4557337528;hpb=c1e4ce315463429bfc32d2c21818bad1954c9e00;p=gosa.git
diff --git a/plugins/admin/systems/class_workstationStartup.inc b/plugins/admin/systems/class_workstationStartup.inc
index a5cfa2063..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']." ";
@@ -267,7 +285,7 @@ class workstartup extends plugin
}
if(($sort_type)&&(!$sort)){
- $value = preg_replace("/_.*$/i","",preg_replace("/".$sort_type."/i","",$name));
+ $value = base64_decode(preg_replace("/_.*$/i","",preg_replace("/".$sort_type."/i","",$name)));
$sort = true;
$last = -1;
@@ -315,7 +333,7 @@ class workstartup extends plugin
if(preg_match("/fai_remove/i",$name)){
- $value = preg_replace("/_.*$/i","",preg_replace("/fai_remove_/i","",$name));
+ $value = base64_decode(preg_replace("/_.*$/i","",preg_replace("/fai_remove_/i","",$name)));
unset($this->FAIclass[$value]);
}
}
@@ -384,9 +402,10 @@ class workstartup extends plugin
$str_up = " ";
$str_down = " ";
$str_remove = " ";
- $str_empty = "
";
+ $str_empty = "
";
$i = 1;
+
foreach($this->FAIclass as $class){
if($i==1){
$str = $str_empty.$str_down.$str_remove;
@@ -399,12 +418,12 @@ class workstartup extends plugin
$div->AddEntry(array(
array("string"=>$class),
- array("string"=>preg_replace("/\%s/",$class,$str),"attach"=>"style='width:50px;border-right:none;'")
+ array("string"=>preg_replace("/\%s/",base64_encode($class),$str),"attach"=>"style='width:50px;border-right:none;'")
));
}
$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()
{