X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fogroups%2Fclass_divListOGroup.inc;h=69e6ce20738473cd3497846c822f3eb65cdc7ede;hb=0eebfd3829749fcdcc5d9995ca9675d99f81888a;hp=5f7cc06f26bc201fb34b4219896fda61277deca3;hpb=feae85cd780545c9d88b2aaa876c5c2b9ddf1e19;p=gosa.git diff --git a/plugins/admin/ogroups/class_divListOGroup.inc b/plugins/admin/ogroups/class_divListOGroup.inc index 5f7cc06f2..69e6ce207 100755 --- a/plugins/admin/ogroups/class_divListOGroup.inc +++ b/plugins/admin/ogroups/class_divListOGroup.inc @@ -29,7 +29,7 @@ class divListOGroup extends MultiSelectWindow function divListOGroup ($config,$parent) { - MultiSelectWindow::MultiSelectWindow($config,"OGroups"); + MultiSelectWindow::MultiSelectWindow($config, "OGroups", "ogroups"); $this->parent = $parent; $this->ui = get_userinfo(); @@ -47,22 +47,28 @@ class divListOGroup extends MultiSelectWindow $this->EnableCloseButton(false); $this->EnableSaveButton (false); + /* Dynamic action col, depending on snapshot icons */ + $action_col_size = 70; + if($this->parent->snapshotEnabled()){ + $action_col_size += 38; + } + /* set Page header */ $this->AddHeader(array("string" => " ", "attach" => "style='text-align:center;width:20px;'")); $this->AddHeader(array("string" => _("Name of object groups")." / "._("Departments"), "attach" => "style=''")); $this->AddHeader(array("string" => _("Properties"), "attach" => "style='width:136px;'")); - $this->AddHeader(array("string" => _("Actions"), "attach" => "style='width:107px;border-right:0px;text-align:right;'")); + $this->AddHeader(array("string" => _("Actions"), "attach" => "style='width:".$action_col_size."px;border-right:0px;text-align:right;'")); /* Text ,Value ,Name ,Is selected */ - $this->AddCheckBox("UserGroups" , _("") , _("Show groups containing users"), true); - $this->AddCheckBox("GroupGroups" , _("") , _("Show groups containing groups"), true); - $this->AddCheckBox("ApplicationGroups", _("") , _("Show groups containing applications"), true); - $this->AddCheckBox("DepartmentGroups" , _("") , _("Show groups containing departments"), true); - $this->AddCheckBox("ServerGroups" , _("") , _("Show groups containing servers"), true); - $this->AddCheckBox("WorkstationGroups", _("") , _("Show groups containing workstations"), true); - $this->AddCheckBox("TerminalGroups" , _("") , _("Show groups containing terminals"), true); - $this->AddCheckBox("PrinterGroups" , _("") , _("Show groups containing printer"), true); - $this->AddCheckBox("PhoneGroups" , _("") , _("Show groups containing phones"), true); + $this->AddCheckBox("UserGroups" , _("Select to see groups containing users") , _("Show groups containing users"), true); + $this->AddCheckBox("GroupGroups" , _("Select to see groups containing groups") , _("Show groups containing groups"), true); + $this->AddCheckBox("ApplicationGroups", _("Select to see groups containing applications"), _("Show groups containing applications"), true); + $this->AddCheckBox("DepartmentGroups" , _("Select to see groups containing departments") , _("Show groups containing departments"), true); + $this->AddCheckBox("ServerGroups" , _("Select to see groups containing servers") , _("Show groups containing servers"), true); + $this->AddCheckBox("WorkstationGroups", _("Select to see groups containing workstations"), _("Show groups containing workstations"), true); + $this->AddCheckBox("TerminalGroups" , _("Select to see groups containing terminals") , _("Show groups containing terminals"), true); + $this->AddCheckBox("PrinterGroups" , _("Select to see groups containing printer") , _("Show groups containing printer"), true); + $this->AddCheckBox("PhoneGroups" , _("Select to see groups containing phones") , _("Show groups containing phones"), true); /* Add SubSearch checkbox */ $this->AddCheckBox(SEPERATOR); @@ -79,15 +85,32 @@ class divListOGroup extends MultiSelectWindow which are shown in the listbox on top of the listbox */ $options= ""; - foreach ($this->config->idepartments as $key => $value){ - if ($this->selectedBase == $key){ - $options.= ""; - } else { - $options.= ""; + + /* Get all departments within this subtree */ + $base = $this->config->current['BASE']; + $deps= get_list("(&(|(ou=*)(description=*))(objectClass=gosaDepartment))", $this->module, $base, + array("ou", "description"), GL_SIZELIMIT | GL_SUBSEARCH); + + /* Load possible departments */ + $ui= get_userinfo(); + $tdeps= $ui->get_module_departments("ogroups"); + + $ids = $this->config->idepartments; + + foreach($deps as $dep){ + if(isset($ids[$dep['dn']]) && in_array_ics($dep['dn'], $tdeps)){ + + $value = $ids[$dep['dn']]; + if ($this->selectedBase == $dep['dn']){ + $options.= ""; + } else { + $options.= ""; + } } } - if($this->parent->CopyPasteHandler){ + /* Get copy & paste icon */ + if(preg_match("/w/",$ui->get_permissions($this->selectedBase,"ogroups/ogroup")) && $this->parent->CopyPasteHandler){ $Copy_Paste = $this->parent->CopyPasteHandler->generatePasteIcon(); }else{ $Copy_Paste =""; @@ -96,23 +119,34 @@ class divListOGroup extends MultiSelectWindow // Managment $listhead = "
". "  ". + title='"._("Go to root department")."' name='dep_root' alt='"._("Root")."'> ". "  ". + title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'> ". "  ". - "  ". - "  ". - " ". - $Copy_Paste. + title='"._("Go to users department")."' alt='"._("Home")."' name='dep_home'> ". + "  ". + "  "; + + $acls = $ui->get_permissions($this->selectedBase,"ogroups/ogroup"); + if(preg_match("/c/",$acls) && preg_match("/w/",$acls)){ + $listhead .= $this->get_snapshot_header($this->selectedBase); + }else{ + $listhead .= " "; + } + + if(preg_match("/c/",$acls)) { + $listhead .=" "; + } + + $listhead .= $Copy_Paste. "  ". _("Base")." ". "  ". + title='"._("Submit department")."' name='submit_department' alt='"._("Submit")."'> ". "
"; - + $this->SetListHeader($listhead); } @@ -126,19 +160,6 @@ class divListOGroup extends MultiSelectWindow { /* Add Copy & Paste buttons if copy&paste is enabled */ - /* Create action icons */ - $actions = ""; - if($this->parent->CopyPasteHandler){ - $actions.= " "; - $actions.= " "; - } - $actions.= ""; - $actions.= ""; - // Defining Links $linkopen = "%s"; $editlink = "%s"; @@ -146,15 +167,49 @@ class divListOGroup extends MultiSelectWindow $mailimg = "M"; $empty = ""; + /* Dynamic action col, depending on snapshot icons */ + $action_col_size = 70; + if($this->parent->snapshotEnabled()){ + $action_col_size += 38; + } + + $ui = get_userinfo(); + // Assigning ogroups foreach($list as $key => $val){ + /* Create action icons */ + $actions= ""; + if($this->parent->CopyPasteHandler && preg_match("/w/",$ui->get_category_permissions($val['dn'],"ogroups"))){ + $actions.= " "; + $actions.= " "; + } + + + $actions.= ""; + + if(preg_match("/w/",$ui->get_permissions($val['dn'],"groups/group"))){ + $actions.= $this->GetSnapShotActions($val['dn']); + } + + if(preg_match("/d/",$ui->get_permissions($val['dn'],"ogroups/ogroup"))) { + $actions.= ""; + }else{ + $action.= " "; + } + + if(isset($val['mail'])){ $mail = $mailimg; }else{ $mail = $empty; } - $title = "title='dn: ".@LDAP::fix($val['dn'])."'"; + $title = "title='".preg_replace('/ /', ' ', @LDAP::fix($val['dn']))."'"; if(!isset($val['description'][0])){ $desc = ""; }else{ @@ -163,7 +218,7 @@ class divListOGroup extends MultiSelectWindow $field1 = array("string" => ""._("Object group")."", "attach" => "style='text-align:center;width: 20px;'"); $field2 = array("string" => sprintf($editlink,$key,($val['cn']['0'].$desc)), "attach" => "style='' ".$title); $field3 = array("string" => preg_replace("/%KEY/", $key, $this->parent->convert_list($val))." ".$mail, "attach" => "style='width:136px;'"); - $field4 = array("string" => preg_replace("/%KEY%/", $key, $actions), "attach" => "style='width:107px;border-right:0px;text-align:right;'"); + $field4 = array("string" => preg_replace("/%KEY%/", $key, $actions), "attach" => "style='width:".$action_col_size."px;border-right:0px;text-align:right;'"); $this->AddElement(array($field1,$field2,$field3,$field4)); }