diff -u b/src/GroupMembershipLoader.php b/src/GroupMembershipLoader.php --- b/src/GroupMembershipLoader.php +++ b/src/GroupMembershipLoader.php @@ -92,10 +92,11 @@ * {@inheritdoc} */ public function load(GroupInterface $group, AccountInterface $account) { - if (!isset($this->userMemberships[$account->id()])) { + $cache_id = md5($account->id()); + if (!isset($this->userMemberships[$account->id()][$cache_id])) { $this->loadByUser($account); } - return isset($this->userMemberships[$account->id()][$group->id()]) ? $this->userMemberships[$account->id()][$group->id()] : FALSE; + return isset($this->userMemberships[$account->id()][$cache_id][$group->id()]) ? $this->userMemberships[$account->id()][$cache_id][$group->id()] : FALSE; } /** @@ -108,7 +109,7 @@ } if (isset($this->groupMemberships[$group->id()][$cache_id])) { - $this->groupMemberships[$group->id()][$cache_id]; + return $this->groupMemberships[$group->id()][$cache_id]; } $filters = [];