From 36c852f88bf78b2d3b74cd74eb5b3d1c74184d2a Mon Sep 17 00:00:00 2001
From: Thibault Dockx <thibault.dockx@fusiondirectory.org>
Date: Tue, 25 Feb 2025 15:08:49 +0000
Subject: [PATCH] :sparkles: Feat(workflow) - adapts workflow to php8.2

Adapts workflow to php8.2
---
 plugins/workflow/tasks/class_tasks.inc     |  4 ++--
 plugins/workflow/tasks/class_tasksMail.inc | 21 ++++++---------------
 2 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/plugins/workflow/tasks/class_tasks.inc b/plugins/workflow/tasks/class_tasks.inc
index b181c6849..9535bb7d0 100755
--- a/plugins/workflow/tasks/class_tasks.inc
+++ b/plugins/workflow/tasks/class_tasks.inc
@@ -258,7 +258,7 @@ class tasks extends simplePlugin
     if (!empty($groups)) {
       // Verify if  the values received is a member or a group and collect the members DN
       foreach ($groups as $group) {
-        if (strpos($group, "ou=groups") !== FALSE) {
+        if (str_contains((string) $group, "ou=groups")) {
 
           // Position ldap to the dn required (limit search).
           $ldap->cd($group);
@@ -286,7 +286,7 @@ class tasks extends simplePlugin
 
       // Iterate on the DN list to remove any members representing a group (members of that potential groups were extracted).
       foreach ($listMemberDN as $key => $value) {
-        if (strpos($value, 'ou=groups') !== FALSE) {
+        if (str_contains((string) $value, 'ou=groups')) {
           unset($listMemberDN[$key]);
         }
       }
diff --git a/plugins/workflow/tasks/class_tasksMail.inc b/plugins/workflow/tasks/class_tasksMail.inc
index e8cf6a684..86c4e90b7 100755
--- a/plugins/workflow/tasks/class_tasksMail.inc
+++ b/plugins/workflow/tasks/class_tasksMail.inc
@@ -152,20 +152,11 @@ class tasksMail extends simplePlugin
    */
   public function getMailObject (string $mailAttr): string
   {
-    switch ($mailAttr) {
-      case 'mail' :
-      case 'gosaMailAlternateAddress' :
-      case 'gosaMailForwardingAddress':
-        return 'gosaMailAccount';
-
-      case 'supannAutreMail' :
-      case 'supannMailPerso' :
-      case 'supannMailPrive' :
-        return 'supannPerson';
-
-      default :
-        return 'gosaMailAccount';
-    }
+    return match ($mailAttr) {
+        'mail', 'gosaMailAlternateAddress', 'gosaMailForwardingAddress' => 'gosaMailAccount',
+        'supannAutreMail', 'supannMailPerso', 'supannMailPrive' => 'supannPerson',
+        default => 'gosaMailAccount',
+    };
   }
 
   /*
@@ -191,7 +182,7 @@ class tasksMail extends simplePlugin
       if (!empty($info[$mailAttr][0])) {
 
         // Remove anything between curly braces (e.g., {PERSO}, {PRO} as well as supann labels)
-        $cleanMail = preg_replace('/.+?(?=supann)/', '', $info[$mailAttr][0]);
+        $cleanMail = preg_replace('/.+?(?=supann)/', '', (string) $info[$mailAttr][0]);
         $finalMail = preg_replace('/\{.*?\}/', '', $cleanMail);
 
         $mailList[] = $finalMail;
-- 
GitLab