From 719aec1161e2da62fcbc4a86d8616ba8da16f688 Mon Sep 17 00:00:00 2001 From: Charlotte Bataille Date: Wed, 9 Mar 2022 10:07:38 +0100 Subject: [PATCH 1/4] feat/18593 : display other org owner in search form --- .../organization/Controller/organization.php | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/bundle/organization/Controller/organization.php b/src/bundle/organization/Controller/organization.php index e36e22250..03ce841a2 100755 --- a/src/bundle/organization/Controller/organization.php +++ b/src/bundle/organization/Controller/organization.php @@ -1650,20 +1650,22 @@ class organization */ protected function getOwnerOrgsByRole($currentService, $role) { - $organizationController = \laabs::newController('organization/organization'); - $orgUnits = $organizationController->getOrgsByRole($role); + $orgUnits = $this->getOrgsByRole($role); $userPositionController = \laabs::newController('organization/userPosition'); - $orgController = \laabs::newController('organization/organization'); + $archivalAgreementController = \laabs::newController('medona/archivalAgreement'); $owner = false; $archiver = false; $userOrgUnits = []; $userOrgs = []; + $allArchivalAgreements = $archivalAgreementController->index(); + + $originatorOrgIds = []; $userOrgUnitOrgRegNumbers = array_merge(array($currentService->registrationNumber), $userPositionController->readDescandantService((string)$currentService->orgId)); foreach ($userOrgUnitOrgRegNumbers as $userOrgUnitOrgRegNumber) { - $userOrgUnit = $orgController->getOrgByRegNumber($userOrgUnitOrgRegNumber); + $userOrgUnit = $this->getOrgByRegNumber($userOrgUnitOrgRegNumber); $userOrgUnits[] = $userOrgUnit; if (isset($userOrgUnit->orgRoleCodes)) { foreach ($userOrgUnit->orgRoleCodes as $orgRoleCode) { @@ -1672,6 +1674,12 @@ class organization } if ($orgRoleCode == 'archiver') { $archiver = true; + $myOriginatorOrgs = []; + foreach ($allArchivalAgreements as $archivalAgreement) { + if($archivalAgreement->archiverOrgRegNumber == $userOrgUnitOrgRegNumber) { + $myOriginatorOrgs = array_merge($myOriginatorOrgs, $archivalAgreement->originatorOrgIds->jsonSerialize()); + } + } } } } @@ -1681,14 +1689,14 @@ class organization foreach ($orgUnits as $orgUnit) { if (// Owner = all originators $owner - // Archiver = all originators fo the same org - || ($archiver && $orgUnit->ownerOrgId == $userOrgUnit->ownerOrgId) + // Archiver = all originators for the same org + || ($archiver && ($orgUnit->ownerOrgId == $userOrgUnit->ownerOrgId || in_array($orgUnit->orgId, $myOriginatorOrgs))) // Originator = all originators at position and sub-services || ($role == 'originator' && $orgUnit->registrationNumber == $userOrgUnit->registrationNumber) // Depositor = all || $role == 'depositor') { if (!isset($userOrgs[(string)$orgUnit->ownerOrgId])) { - $orgObject = $organizationController->read((string)$orgUnit->ownerOrgId); + $orgObject = $this->read((string)$orgUnit->ownerOrgId); $userOrgs[(string)$orgObject->orgId] = new \stdClass(); $userOrgs[(string)$orgObject->orgId]->displayName = $orgObject->displayName; -- GitLab From a806e4f9ed15e3b94fecf1adfe0686689696f254 Mon Sep 17 00:00:00 2001 From: Charlotte Bataille Date: Wed, 9 Mar 2022 12:12:18 +0100 Subject: [PATCH 2/4] feat/18593 : fix search form --- .../Resources/view/recordsManagement/archive/searchform.html | 1 + 1 file changed, 1 insertion(+) diff --git a/src/presentation/maarchRM/Resources/view/recordsManagement/archive/searchform.html b/src/presentation/maarchRM/Resources/view/recordsManagement/archive/searchform.html index c7418bd44..df2c8c426 100644 --- a/src/presentation/maarchRM/Resources/view/recordsManagement/archive/searchform.html +++ b/src/presentation/maarchRM/Resources/view/recordsManagement/archive/searchform.html @@ -246,6 +246,7 @@
You must fill all required fields (*) +
No originator found