X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Fplugins%2Fadmin%2Facl%2Fclass_aclRole.inc;h=748d4b9c7538cc688838daaa569cb12f9225b289;hb=800d69cc3a65d84fa86b551810411c9a3e404a7b;hp=b78c955e156c7b00831412de4567e57e50a0cf51;hpb=1614974f4859704c1bae1f39fae4300721d2bfdc;p=gosa.git diff --git a/gosa-core/plugins/admin/acl/class_aclRole.inc b/gosa-core/plugins/admin/acl/class_aclRole.inc index b78c955e1..748d4b9c7 100644 --- a/gosa-core/plugins/admin/acl/class_aclRole.inc +++ b/gosa-core/plugins/admin/acl/class_aclRole.inc @@ -49,6 +49,7 @@ class aclrole extends acl /* Role attributes */ var $gosaAclTemplate= ""; var $cn = ""; + var $orig_cn = ""; var $description = ""; var $orig_dn; var $orig_base; @@ -139,6 +140,7 @@ class aclrole extends acl $this->is_account= TRUE; $this->orig_base = $this->base; $this->orig_dn = $this->dn; + $this->orig_cn = $this->cn; } @@ -424,9 +426,7 @@ class aclrole extends acl $summary.= "$oc, "; continue; } - if (isset($this->aclContents["$section/$oc"]) && count($this->aclContents["$section/$oc"]) && isset($this->aclContents["$section/$oc"][0]) && - $this->aclContents["$section/$oc"][0] != ""){ - + if (isset($this->aclContents["$section/$oc"]) && count($this->aclContents["$section/$oc"])){ $summary.= "$oc, "; continue; } @@ -763,7 +763,20 @@ class aclrole extends acl if(empty($this->cn)){ $message[] = msgPool::required(_("Name")); } - + + $ldap = $this->config->get_ldap_link(); + $ldap->cd($this->config->current['BASE']); + if($this->cn != $this->orig_cn){ + $ldap->search("(&(objectClass=gosaRole)(cn=".$this->cn."))"); + if($ldap->count()) { + while($attrs = $ldap->fetch()){ + if($attrs['dn'] != $this->orig_dn){ + $message[] = msgPool::duplicated(_("Name")); + } + } + } + } + if(!count($this->gosaAclTemplate)){ $message[] = msgPool::required(_("ACL")); }