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 = "
FAIrelease)."\"> ";
}
}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");