X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fadmin%2Fsystems%2Fclass_baseSelectDialog.inc;h=a2569d644fd067be9e79a2c22d874469839cb7e0;hb=ccb05fb19fe5af3570c2c57b703a595b1c78bf28;hp=79b583926828602a1f69b6c99f30ba816d479c22;hpb=081872cbb7e11b56172d1eeed33ed8d64d51f7fc;p=gosa.git diff --git a/plugins/admin/systems/class_baseSelectDialog.inc b/plugins/admin/systems/class_baseSelectDialog.inc index 79b583926..a2569d644 100644 --- a/plugins/admin/systems/class_baseSelectDialog.inc +++ b/plugins/admin/systems/class_baseSelectDialog.inc @@ -2,32 +2,33 @@ class baseSelectDialog extends MultiSelectWindow { - var $selected_base = ""; // Used for navigation + var $selectedBase = ""; // Used for navigation var $base_selection_regex = "*"; // Used regex ... // var $Doesnothing = ""; // Checkbox which does nothing - var $selectedBase = false; // used to specify the selected base, + var $BaseToUse = false; // used to specify the selected base, // false if none is selected var $allowedBases = array(); function baseSelectDialog ($config,$onlyAllowThisBases = array()) { - MultiSelectWindow::MultiSelectWindow($config); + MultiSelectWindow::MultiSelectWindow($config,"BASEselectWindow"); - $this->selected_base = $config->current['BASE']; + $this->selectedBase = $config->current['BASE']; $this->allowedBases = $onlyAllowThisBases; $this->SetTitle("Base"); $this->SetSummary(_("Choose a base")); $this->SetListHeader("
". - "  ". "  ". + "  ". "  ". + "  ". "
"); $this->SetInformation(_("Step in the prefered tree and click save to use the current subtree as base. Or click the image at the end of each entry.")); @@ -59,22 +60,24 @@ class baseSelectDialog extends MultiSelectWindow function setEntries() { $this->ClearElementsList(); - $ldap = $this->config->get_ldap_link(); - $ldap->cd($this->selected_base); - $ldap->ls("(&(objectClass=gosaDepartment) - (|(ou=".$this->base_selection_regex.") - (cn=".$this->base_selection_regex.") - (description=".$this->base_selection_regex.")))", - $this->selected_base,array("ou","description","cn")); $link = "%s"; - $base_back = preg_replace("/^[^,]+,/","",$this->selected_base); + $base_back = preg_replace("/^[^,]+,/","",$this->selectedBase); $base_back = convert_department_dn($base_back); + + $filter = "(&(objectClass=gosaDepartment)". + "(|(ou=".$this->base_selection_regex.")". + "(cn=".$this->base_selection_regex.")". + "(description=".$this->base_selection_regex.")))"; + + $ui = get_userinfo(); + $res = get_list($filter,$ui->subtreeACL,$this->selectedBase,array("ou","description","cn"),GL_SIZELIMIT); + /* Add departments, to be able to switch into them */ - while($attrs = $ldap->fetch()){ + foreach($res as $attrs){ $key = $attrs['dn'] ; $val = $attrs['ou'][0]; @@ -111,7 +114,7 @@ class baseSelectDialog extends MultiSelectWindow $field1 = array("string" => "department", "attach" => "style='text-align:center;width:20px;'"); $field2 = array("string" => sprintf($link,base64_encode($key),$val), "attach" => "style=''"); - $field3 = array("string" => sprintf(" ",base64_encode($key)), + $field3 = array("string" => sprintf(" ",base64_encode($key)), "attach" => "style='width:50px;border-right:0px;text-align:right;'"); $this->AddElement(array($field1,$field2,$field3)); } @@ -120,17 +123,17 @@ class baseSelectDialog extends MultiSelectWindow function Save() { MultiSelectWindow :: Save(); - $this->selectedBase = $this->selected_base; + $this->BaseToUse = $this->selectedBase; } function isSelected() { - return($this->selectedBase); + return($this->BaseToUse); } function setCurrentBase($base) { - $this->selected_base = $base; + $this->selectedBase = $base; } function save_object() @@ -139,7 +142,7 @@ class baseSelectDialog extends MultiSelectWindow MultiSelectWindow::save_object(); if(isset($_GET['open_dep'])){ - $this->selected_base = base64_decode($_GET['open_dep']); + $this->selectedBase = base64_decode($_GET['open_dep']); } $s_action =""; @@ -154,31 +157,31 @@ class baseSelectDialog extends MultiSelectWindow $tmp = preg_replace("/^usebase_/","",$key); $tmp = preg_replace("/_.*$/","",$tmp); $tmp = base64_decode($tmp); - $this->selectedBase = $tmp; + $this->BaseToUse = $tmp; } } $ui= get_userinfo(); /* Homebutton is posted */ if($s_action=="home"){ - $this->selected_base=(preg_replace("/^[^,]+,/","",$ui->dn)); - $this->selected_base=(preg_replace("/^[^,]+,/","",$this->selected_base)); + $this->selectedBase=(preg_replace("/^[^,]+,/","",$ui->dn)); + $this->selectedBase=(preg_replace("/^[^,]+,/","",$this->selectedBase)); } /* back to the roots ^^ */ if($s_action=="root"){ - $this->selected_base=($this->config->current['BASE']); + $this->selectedBase=($this->config->current['BASE']); } /* If Backbutton is Posted */ if($s_action=="back"){ - $base_back = preg_replace("/^[^,]+,/","",$this->selected_base); + $base_back = preg_replace("/^[^,]+,/","",$this->selectedBase); $base_back = convert_department_dn($base_back); if(isset($this->config->departments[trim($base_back)])){ - $this->selected_base= $this->config->departments[trim($base_back)]; + $this->selectedBase= $this->config->departments[trim($base_back)]; }else{ - $this->selected_base= $this->config->departments["/"]; + $this->selectedBase= $this->config->departments["/"]; } } }