X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fgroups%2Fclass_groupApplication.inc;h=064b94e6bf79bb58c4735456090e50df220699b6;hb=335428f1501ac307511e688ea19958e274b4bcc6;hp=26af428f42ae7b09e6b3f20492cf7216ea1f1ebf;hpb=2706e5a3dbe999b326f3976d66120a17d4471950;p=gosa.git diff --git a/plugins/admin/groups/class_groupApplication.inc b/plugins/admin/groups/class_groupApplication.inc index 26af428f4..064b94e6b 100644 --- a/plugins/admin/groups/class_groupApplication.inc +++ b/plugins/admin/groups/class_groupApplication.inc @@ -37,11 +37,13 @@ class appgroup extends plugin var $CopyPasteVars = array("Categories"); var $gosaApplicationParameter ; + var $ui ; - function appgroup ($config, $dn= NULL) + function appgroup ($config, $dn= NULL, $parent= NULL) { - + $this->ui = get_userinfo(); + /* prepare group app for release management */ $tmp = search_config($config->data,"faiManagement","CLASS"); if(!empty($tmp)){ @@ -50,7 +52,7 @@ class appgroup extends plugin $this->attributes[] = "FAIrelease"; } - plugin::plugin ($config, $dn); + plugin::plugin ($config, $dn, $parent); /* In some case of old applikations with old release tag saving, we must reassign is_account state. @@ -615,11 +617,14 @@ class appgroup extends plugin $departments = array(); $res = get_list("(objectClass=gosaDepartment)",$ui->subtreeACL,$this->curbase,array("description","cn","ou"),GL_SIZELIMIT); foreach($res as $value){ - $fdn= @LDAP::fix($value['dn']); + + $fdn = $value['dn']; + $fdn = preg_replace("/".normalizePreg($this->curbase)."/","",$fdn); + $fdn= @LDAP::fix($fdn); if($value["description"][0]!=".."){ $departments[$value['dn']]= convert_department_dn($fdn)." - [".$value["description"][0]."]"; }else{ - $departments[$value['dn']]=convert_department_dn($fdn); + $departments[$value['dn']]= convert_department_dn($fdn); } } @@ -733,11 +738,11 @@ class appgroup extends plugin /* release managent is active */ if(!$this->enableReleaseManagement){ - $image = " "; }else{ - $image = " "; + $image = "FFAIrelease)."\"> "; } }elseif(isset($Differences[$entry['App']]) && ($Differences[$entry['App']] == true)) { @@ -790,12 +795,8 @@ class appgroup extends plugin $ldap = $this->config->get_ldap_link(); $ldap->cd($dn); $ldap->search("(&(objectClass=organizationalUnit)(objectClass=FAIbranch))",array("ou")); - - $ui = get_userinfo(); - $returned = get_list("(&(objectClass=organizationalUnit)(objectClass=FAIbranch))",$ui->subtreeACL,$dn,array("ou")); $ret =array(); - - foreach($returned as $attrs){ + while($attrs = $ldap->fetch()){ if(preg_match("/ou=apps,/",$attrs['dn'])){ $bb = preg_replace("/ou=apps,.*/","",$attrs['dn']); $parts = array_reverse(split("ou=",$bb)); @@ -814,6 +815,12 @@ class appgroup extends plugin $ret[$attrs['dn']] = $name; } } + + /* Set releases to / id nor presenet */ + if (!count($ret)){ + $ret['/']= '/'; + } + return($ret); } @@ -908,33 +915,29 @@ class appgroup extends plugin /* Special handling for release managed apps */ $tmp = search_config($this->config->data,"faiManagement","CLASS"); - if(!empty($tmp)){ + if(!empty($tmp) && count($this->Releases)){ $this->enableReleaseManagement = true; $tmp = array_flip($this->Releases); if(isset($tmp[$this->FAIrelease])){ $base = $tmp[$this->FAIrelease]; }else{ + $old_r = $this->FAIrelease; $k = key($tmp); $r = $tmp[$k]; $this->FAIrelease = $k; $base = $r; - print_red(sprintf(_("Can't resolve the release name '%s', setting release name to '%s'. Possibly the objects base has changed."),$this->FAIrelease,$k)); + print_red(sprintf(_("Can't resolve the release name '%s', setting release name to '%s'. Possibly the objects base has changed."),$old_r,$k)); } $base = preg_replace("/ou=apps,.*$/","ou=apps,".$this->curbase,$base); - - $ldap = $this->config->get_ldap_link(); - $ldap->cd ($base); - $ldap->ls ("(objectClass=gosaApplication)",$base); + $app_res = get_list("(objectClass=gosaApplication)", $this->ui->subtreeACL, $base,array("cn","description")); }else{ - $ldap = $this->config->get_ldap_link(); - $ldap->cd ("ou=apps,".$this->curbase); - $ldap->ls ("(objectClass=gosaApplication)","ou=apps,".$this->curbase); + $app_res = get_list("(objectClass=gosaApplication)", $this->ui->subtreeACL, "ou=apps,".$this->curbase,array("cn","description")); } - while ($attrs= $ldap->fetch()){ + foreach($app_res as $attrs){ if (isset($attrs["description"][0])){ $this->apps[$attrs["cn"][0]]= $attrs["cn"][0]." (". @@ -945,6 +948,7 @@ class appgroup extends plugin } } + $ldap = $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); $ldap->search("objectClass=gosaApplication",array("gosaApplicationParameter","cn")); $tmp = search_config($this->config->data,"faiManagement","CLASS");