diff --git a/plugins/admin/systems/class_workstationStartup.inc b/plugins/admin/systems/class_workstationStartup.inc
index 2d551801a8602efb9925fdc5ebd8c25ed59869c9..07a925b61fed2d0d44e97c36b1ccb5ff5f66c9ac 100644 (file)
var $FAIclass = array();
var $FAIclasses = array();
var $FAIclassInfo = array();
- var $FAIdebianMirror = array();
+ var $FAIdebianMirror = "auto";
/* attribute list for save action */
/* Creating a list of valid Mirrors
* none will not be saved to ldap.
*/
- $this->FAIdebianMirrors = array("none"=>_("none"));
+ $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 */
+ $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"])){
/* 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.
*/
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'])){
$this->FAIclasses[$attr['cn'][0]]=$attr['cn'][0];
}
}
+ if(is_array($this->FAIclasses)){
+ natcasesort($this->FAIclasses);
+ }
$this->FAIclassInfo = $tmp2;
foreach($this->FAIclasses as $class){
$str = "";
$skip = false;
+
if(isset($this->FAIclassInfo[$class])){
foreach($this->FAIclassInfo[$class] as $objs){
$str .= $objs['kzl']." ";
}
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;
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]);
}
}
$str_up = " <input type='image' src='images/sort_up.png' name='sort_up_%s' value='%s'>";
$str_down = " <input type='image' src='images/sort_down.png' name='sort_down_%s' value='%s'>";
$str_remove = " <input type='image' src='images/edittrash.png' name='fai_remove_%s' value='%s'>";
- $str_empty = " <img src='images/empty.png'i width='7'>";
+ $str_empty = " <img src='images/empty.png' alt=\"\" width='7'>";
$i = 1;
+
foreach($this->FAIclass as $class){
if($i==1){
$str = $str_empty.$str_down.$str_remove;
$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);
function remove_from_parent()
{
- /*
- $ldap= $this->config->get_ldap_link();
- $ldap->rmdir($this->dn);
- show_ldap_error($ldap->get_error());
$this->handle_post_events("remove");
- */
+ }
- /* Depending on the baseobject (Ogroup / WS) we
- * use another set of objectClasses
- * In case of WS itself, we use "array("GOhard", "FAIobject");"
- * if we are currently editing from ogroup menu we use (array("gotWorkstationTemplate","GOhard", "FAIobject"))
- */
- if(isset($this->parent->by_object['ogroup'])){
- $this->objectclasses = array("gotoWorkstationTemplate","GOhard", "FAIobject");
- }elseif(isset($this->parent->by_object['workgeneric'])){
- $this->objectclasses = array("GOhard", "FAIobject");
- }else{
- print "unknown";
- exit();
+ 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;
+ }
+ }
+ }
+ }
}
-
- $ldap= $this->config->get_ldap_link();
- plugin::remove_from_parent();
-
- /* Remove additional attributes.*/
- foreach(array("gotoModules", "gotoAutoFs", "gotoFilesystem") as $attr){
- $this->attrs [$attr] = array();
+ 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;
+ }
+ }
}
-
- $ldap->cd($this->dn);
- $ldap->modify($this->attrs);
- show_ldap_error($ldap->get_error());
-
+ return($ret);
}
-
/* Save data to object */
function save_object()
{
if($this->FAIdebianMirror == "none"){
$this->FAIdebianMirror = "";
}
-
+
if((count($this->attrs['FAIclass'])==0)&&(empty($this->FAIdebianMirror))){
$tmp = array();
foreach($this->attrs['objectClass'] as $class){