diff --git a/plugins/configuration/tasks/class_tasksMail.inc b/plugins/configuration/tasks/class_tasksMail.inc index b8e71de320be8f754becd20498051841ed5b55a7..3f8e3895fa4cca2dbde9205e6cc903a4e6157944 100644 --- a/plugins/configuration/tasks/class_tasksMail.inc +++ b/plugins/configuration/tasks/class_tasksMail.inc @@ -134,9 +134,15 @@ class tasksMail extends simplePlugin // create a method which return the objectype and attribute names required $mailObject = $this->getMailObject($mailAttr); + // Get the members or groups selected + $attributeValue = $this->attributesAccess['fdTasksMailUsers']->getValue(); + // Extract members from potential groups and dyn-groups. + $listOfDN = tasks::extractMembersFromGroups($attributeValue); // send the objectype and attrs name to the below method - $this->setEmailsFromSelectedDN($mailObject, $mailAttr); + $this->attributesAccess['fdTasksEmailsFromDN']->setValue( + array_values($this->getEmailsFromSelectedDN($mailObject, $mailAttr, $listOfDN)) + ); return TRUE; } @@ -163,19 +169,14 @@ class tasksMail extends simplePlugin } /* - * Populate the fdTasksEmailsFromDN attribute with related mails addresses. + * Retrieve registered emails for each DN passed. */ - public function setEmailsFromSelectedDN ($mailObject, $mailAttr): void + public static function getEmailsFromSelectedDN ($mailObject, $mailAttr, $listOfDN): array { global $config; $ldap = $config->get_ldap_link(); $mailList = []; - // Get the members or groups selected - $attributeValue = $this->attributesAccess['fdTasksMailUsers']->getValue(); - // Extract members from potential groups and dyn-groups. - $listOfDN = tasks::extractMembersFromGroups($attributeValue); - foreach ($listOfDN as $dn) { // Position ldap to the dn required (limit search). $ldap->cd($dn); @@ -196,7 +197,7 @@ class tasksMail extends simplePlugin // A possible enhancement is to recall itself with another mailObject / attr } } - $this->attributesAccess['fdTasksEmailsFromDN']->setValue(array_values($mailList)); + return $mailList; } function save (): array