Merge branch 'master' into fix/noid/group-as-member-display-name

This commit is contained in:
Maxence Lange 2022-03-13 10:46:28 -01:00 committed by GitHub
commit ee4516a003
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 28 additions and 0 deletions

View file

@ -255,6 +255,8 @@ class CircleJoin implements
$this->membershipService->onUpdate($member->getSingleId());
$this->eventService->memberJoining($event);
}
$this->membershipService->updatePopulation($event->getCircle());
}

View file

@ -197,6 +197,8 @@ class CircleLeave implements
$this->membershipService->onUpdate($circle->getSingleId());
$this->eventService->circleDestroying($event);
}
$this->membershipService->updatePopulation($event->getCircle());
}

View file

@ -108,6 +108,8 @@ class MassiveMemberAdd extends SingleMemberAdd implements
} catch (Exception $e) {
}
}
$this->membershipService->updatePopulation($event->getCircle());
}

View file

@ -117,6 +117,7 @@ class MemberRemove implements
// TODO: Remove invited members from this user that have not accepted their invitation
$this->eventService->memberRemoving($event);
$this->membershipService->updatePopulation($event->getCircle());
}

View file

@ -206,6 +206,7 @@ class SingleMemberAdd implements
$this->eventService->memberAdding($event);
}
$this->membershipService->updatePopulation($event->getCircle());
// //
// // TODO: verifiez comment se passe le cached name sur un member_add

View file

@ -387,4 +387,24 @@ class MembershipService {
throw new ItemNotFoundException();
}
/**
* @param Circle $circle
*/
public function updatePopulation(Circle $circle): void {
$local = $inherited = 0;
$memberships = $this->membershipRequest->getInherited($circle->getSingleId(), Member::LEVEL_MEMBER);
foreach ($memberships as $membership) {
$inherited++;
if ($membership->getCircleId() === $circle->getSingleId()) {
$local++;
}
}
$settings = $circle->getSettings();
$settings['population'] = $local;
$settings['populationInherited'] = $inherited;
$this->circleRequest->updateSettings($circle->setSettings($settings));
}
}