Skip to content

Commit

Permalink
fix(targetticket,targetchange): current user may be automatically add…
Browse files Browse the repository at this point in the history
…ed to requesters

when the 1st requester is not a GLPI account (an email address) then the current user was added to requesters
This is not wanted, this behavior must occur when no requester is added, no matter they are account or emails

Signed-off-by: Thierry Bugier <[email protected]>
  • Loading branch information
btry committed Aug 12, 2021
1 parent 4774f1d commit 8fa2a3f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 10 deletions.
12 changes: 7 additions & 5 deletions inc/targetchange.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}
}

Expand Down
12 changes: 7 additions & 5 deletions inc/targetticket.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 8fa2a3f

Please sign in to comment.