Commit 3ff3c600 authored by David Surville's avatar David Surville
Browse files

[Fix] Rustine nécessaire lorsque les nouvelles données de l'attribut "member"...

[Fix] Rustine nécessaire lorsque les nouvelles données de l'attribut "member" sont identiques aux données actuelles mais pas triées de la même façon
parent 874a8477
Loading
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -117,13 +117,6 @@ class Group extends Entity
     */
    public function setMember($value = null, $append = false)
    {
        // Rustine nécessaire lorsque les nouvelles données sont identiques aux données actuelles mais pas triées de la même façon
        $diff1 = array_diff($value, $this->getNode()->getAttribute('member'));
        $diff2 = array_diff($this->getNode()->getAttribute('member'), $value);
        if(empty($diff1) && empty($diff2)) {
            $value = $this->getNode()->getAttribute('member');
        }

        $value = $this->preFormat($value);
        $value = array_map(function ($val) {
            if (is_string($val)) {
@@ -137,6 +130,13 @@ class Group extends Entity
            }
        }, $value);

        // Rustine nécessaire lorsque les nouvelles données sont identiques aux données actuelles mais pas triées de la même façon
        $diff1 = array_diff($value, $this->getNode()->getAttribute('member'));
        $diff2 = array_diff($this->getNode()->getAttribute('member'), $value);
        if(empty($diff1) && empty($diff2)) {
            $value = $this->getNode()->getAttribute('member');
        }

        $value = array_filter($value);
        $members = !$append ? (!empty($value) ? $value : [$this->getMemberNobody()]) : $value;