From 9be019da17b9cde91948adeb22b9f98de2657ec5 Mon Sep 17 00:00:00 2001
From: Jerome_maarch <jerome.boucher@maarch.org>
Date: Tue, 23 Apr 2024 11:19:10 +0200
Subject: [PATCH] FIX #25236 TIME 00:30 fix org list for depositor in message
 composer

---
 .../Presenter/archivesPubliques/content.php   |  2 +-
 .../Presenter/seda/messageComposer.php        | 21 ++++++++++++-------
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/presentation/maarchRM/Presenter/archivesPubliques/content.php b/presentation/maarchRM/Presenter/archivesPubliques/content.php
index a7a9c1e7..df511493 100644
--- a/presentation/maarchRM/Presenter/archivesPubliques/content.php
+++ b/presentation/maarchRM/Presenter/archivesPubliques/content.php
@@ -191,7 +191,7 @@ class content
                     || ($role == 'originator' && $orgUnit->registrationNumber == $userOrgUnit->registrationNumber)
                     // Depositor = all
                     || $role == 'depositor'
-                    ) {
+                ) {
                     // Create org root
                     if (!isset($userOrgs[(string) $orgUnit->ownerOrgId])) {
                         $orgObject = \laabs::callService('organization/organization/read_orgId_', (string) $orgUnit->ownerOrgId);
diff --git a/presentation/maarchRM/Presenter/seda/messageComposer.php b/presentation/maarchRM/Presenter/seda/messageComposer.php
index 342130fb..848e4fc8 100644
--- a/presentation/maarchRM/Presenter/seda/messageComposer.php
+++ b/presentation/maarchRM/Presenter/seda/messageComposer.php
@@ -223,10 +223,13 @@ class messageComposer
                     // Owner = all originators
                     $owner
                     // Archiver = all originators fo the same org
-                    || $role == 'originator' && $orgUnit->ownerOrgId == $userOrgUnit->ownerOrgId
+                    || ($archiver && $orgUnit->ownerOrgId == $userOrgUnit->ownerOrgId)
+                    // Originator = all originators at position and sub-services
+                    || ($role == 'originator' && $orgUnit->registrationNumber == $userOrgUnit->registrationNumber)
                     // Depositor = all
-                    || ($role == 'archiver' || $role == 'depositor')
+                    || $role == 'depositor'
                 ) {
+                    // Create org root
                     if (!isset($userOrgs[(string) $orgUnit->ownerOrgId])) {
                         $orgObject = \laabs::callService('organization/organization/read_orgId_', (string) $orgUnit->ownerOrgId);
 
@@ -234,8 +237,11 @@ class messageComposer
                         $userOrgs[(string) $orgObject->orgId]->displayName = $orgObject->displayName;
                         $userOrgs[(string) $orgObject->orgId]->{$role} = [];
                     }
-
-                    if (!in_array($orgUnit,$userOrgs[(string) $orgObject->orgId]->{$role})) {
+                    // Add orgUnit to org root
+                    if (
+                        (string) $orgUnit->ownerOrgId == (string) $orgObject->orgId
+                        && !in_array($orgUnit, $userOrgs[(string) $orgObject->orgId]->{$role})
+                    ) {
                         $userOrgs[(string)$orgObject->orgId]->{$role}[] = $orgUnit;
                     }
                 }
@@ -253,14 +259,13 @@ class messageComposer
      */
     public function editMessage($message = null)
     {
-
-        if(!empty($message)){
+        if (!empty($message)) {
             $isTemplate = ($message->status == 'template');
         } else {
             $isTemplate = false;
         }
 
-        if(isset($message->status) && $message->status == 'toBeModified'){
+        if (isset($message->status) && $message->status == 'toBeModified') {
             $isModification = true;
         } else {
             $isModification = false;
@@ -442,4 +447,4 @@ class messageComposer
 
         return $this->json->save();
     }
-}
\ No newline at end of file
+}
-- 
GitLab