diff --git a/inc/targetchange.class.php b/inc/targetchange.class.php index 8826adb28..e3a3e839d 100644 --- a/inc/targetchange.class.php +++ b/inc/targetchange.class.php @@ -759,12 +759,14 @@ public function save(PluginFormcreatorFormAnswer $formanswer) { if (count($this->requesters['_users_id_requester']) == 0) { $this->addActor('requester', $formanswer->fields['requester_id'], true); $requesters_id = $formanswer->fields['requester_id']; - } else if (count($this->requesters['_users_id_requester']) >= 1) { - if ($this->requesters['_users_id_requester'][0] == 0) { - $this->addActor('requester', $formanswer->fields['requester_id'], true); + } else { + $requesterAccounts = array_filter($this->requesters['_users_id_requester'], function($v) { + return ($v != 0); + }); + $requesters_id = array_shift($requesterAccounts); + if ($requesters_id === null) { + // No account for requesters, then fallback on the account used to fill the answers $requesters_id = $formanswer->fields['requester_id']; - } else { - $requesters_id = $this->requesters['_users_id_requester'][0]; } } diff --git a/inc/targetticket.class.php b/inc/targetticket.class.php index ca155d4bf..3a2eaded5 100644 --- a/inc/targetticket.class.php +++ b/inc/targetticket.class.php @@ -718,12 +718,14 @@ public function save(PluginFormcreatorFormAnswer $formanswer) { if (count($this->requesters['_users_id_requester']) == 0) { $this->addActor(PluginFormcreatorTarget_Actor::ACTOR_ROLE_REQUESTER, $formanswer->fields['requester_id'], true); $requesters_id = $formanswer->fields['requester_id']; - } else if (count($this->requesters['_users_id_requester']) >= 1) { - if ($this->requesters['_users_id_requester'][0] == 0) { - $this->addActor(PluginFormcreatorTarget_Actor::ACTOR_ROLE_REQUESTER, $formanswer->fields['requester_id'], true); + } else { + $requesterAccounts = array_filter($this->requesters['_users_id_requester'], function($v) { + return ($v != 0); + }); + $requesters_id = array_shift($requesterAccounts); + if ($requesters_id === null) { + // No account for requesters, then fallback on the account used to fill the answers $requesters_id = $formanswer->fields['requester_id']; - } else { - $requesters_id = $this->requesters['_users_id_requester'][0]; } // If only one requester, revert array of requesters into a scalar