X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_baseSelectDialog.inc;h=a2569d644fd067be9e79a2c22d874469839cb7e0;hb=49866d5f3a99b5675b11310ffba4c2e50d967eb7;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" => "",
"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["/"];
}
}
}