From e20e7b2abb1284b9dc8af6988daefdd3cef362d6 Mon Sep 17 00:00:00 2001
From: Thibault Dockx <thibault.dockx@fusiondirectory.org>
Date: Tue, 5 Mar 2024 13:25:02 +0000
Subject: [PATCH] :ambulance: Fix(Tasks) - OnlyNew Members errors

Only new members - fixed
---
 plugins/configuration/tasks/class_tasks.inc        | 14 ++++++++++----
 .../configuration/tasks/class_tasksLifeCycle.inc   |  5 +++--
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/plugins/configuration/tasks/class_tasks.inc b/plugins/configuration/tasks/class_tasks.inc
index 1c32ae601..2f0f0a5c4 100644
--- a/plugins/configuration/tasks/class_tasks.inc
+++ b/plugins/configuration/tasks/class_tasks.inc
@@ -148,9 +148,15 @@ class tasks extends simplePlugin
         if (!empty($subTasks)) {
           // Recuperate members DN from the ldap search.
           foreach ($subTasks as $subTask) {
-            // Case of a DN passed but being locked.
-            if (!empty($subTask['fdTasksGranularDN'][0])) {
-              $membersDN[] = $subTask['fdTasksGranularDN'][0];
+
+            // For lifeCycle we check DN and for mailObject we check mail
+            switch ($attributeType) {
+              case 'fdTasksGranularDN':
+                $membersDN[] = $subTask['fdTasksGranularDN'][0];
+                break;
+              case 'fdTasksGranularMail':
+                $membersDN[] = $subTask['fdTasksGranularMail'][0];
+                break;
             }
           }
           // Verify the DN differences and only keep those.
@@ -186,7 +192,7 @@ class tasks extends simplePlugin
               "fdTasksGranularMailBCC"  => $attrs['bcc']
             ];
             break;
-          case 'fdTasksLifeCycle' :
+          case 'fdTasksGranularDN' :
             $prepData['tasksGranular'] = [
               "fdTasksGranularDN"   => $dn,
               "fdTasksGranularType" => 'Life Cycle',
diff --git a/plugins/configuration/tasks/class_tasksLifeCycle.inc b/plugins/configuration/tasks/class_tasksLifeCycle.inc
index b5a9f2aa2..67f15e101 100644
--- a/plugins/configuration/tasks/class_tasksLifeCycle.inc
+++ b/plugins/configuration/tasks/class_tasksLifeCycle.inc
@@ -186,8 +186,9 @@ class tasksLifeCycle extends simplePlugin
    */
   public function generateSlaveTasks ()
   {
-    $listOfDN      = $this->attributesAccess['fdTasksLifeCycleListOfDN']->getValue();
-    $attributeType = 'fdTasksLifeCycle';
+    $listOfDN = $this->attributesAccess['fdTasksLifeCycleListOfDN']->getValue();
+    // The attribute required to be search in createSlaveTasks
+    $attributeType = 'fdTasksGranularDN';
 
     // Call the method from parent tasks object (first tab) to create sub-tasks.
     $this->parent->getBaseObject()->createSlaveTasks($listOfDN, $attributeType);
-- 
GitLab