From 854f149ce1242a05b89c2eba07578169276221da Mon Sep 17 00:00:00 2001 From: hickert Date: Mon, 29 Jan 2007 08:02:43 +0000 Subject: [PATCH] Updated groupMail.inc - imap acls were not written as expected, the group members were missing. - Somethimes there was an entry added like this "" lrs, caused by an emtpy user acl field. git-svn-id: https://oss.gonicus.de/repositories/gosa/branches/2.5@5638 594d385d-05f5-0310-b6e9-bd551577e9d8 --- plugins/admin/groups/class_groupMail.inc | 40 ++++++++++++++++-------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/plugins/admin/groups/class_groupMail.inc b/plugins/admin/groups/class_groupMail.inc index cb0559b8f..1b2a3e531 100644 --- a/plugins/admin/groups/class_groupMail.inc +++ b/plugins/admin/groups/class_groupMail.inc @@ -778,17 +778,6 @@ I: Only insider delivery */ } - if ((!$this->is_template)&&(!empty($this->gosaMailServer))){ - $method= new $this->method($this->config); - $method->fixAttributesOnStore($this); - if (($method->connect($this->gosaMailServer))){ - $method->updateMailbox($this->uid); - $method->setQuota($this->uid, $this->gosaMailQuota); - $method->setSharedFolderPermissions($this->uid, $this->imapacl); - $method->disconnect(); - } - } - /* Exchange '%member%' pseudo entry */ $memberacl= $this->imapacl['%members%']; @@ -806,12 +795,37 @@ I: Only insider delivery */ } } $this->attrs['acl'] = array(); + + foreach($this->imapacl as $user => $acl){ - if(preg_match("/%members%/",$user) || empty($user)) continue; - + + /* Remove empty user entry, to avoid entry like this im imap + * "" lrs + */ + if(empty($user)){ + unset($this->imapacl[$user]); + } + + /* Skip invalid values */ + if(preg_match("/%members%/",$user) || empty($user)){ + continue; + } + + /* Append ldap acl entries */ $this->attrs['acl'][] = $user." ".$acl; } + if ((!$this->is_template)&&(!empty($this->gosaMailServer))){ + $method= new $this->method($this->config); + $method->fixAttributesOnStore($this); + if (($method->connect($this->gosaMailServer))){ + $method->updateMailbox($this->uid); + $method->setQuota($this->uid, $this->gosaMailQuota); + $method->setSharedFolderPermissions($this->uid, $this->imapacl); + $method->disconnect(); + } + } + /* Save data to LDAP */ $ldap->cd($this->dn); $this->cleanup(); -- 2.30.2