diff --git a/CHANGELOG.md b/CHANGELOG.md index 72cd0e666..b2f951479 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,6 @@ and this project adheres to ## Unreleased -* [activity] Feature: In docgen, allow filtering activities and social works for acc course by logged user * [person][export] Fixed: rename the alias for `accompanying_period` to `acp` in filter associated with person * [activity][export] Feature: improve label for aliases in "Filter by activity type" * [activity][export] DX/Feature: use of an `ActivityTypeRepositoryInterface` instead of the old-style EntityRepository diff --git a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php index edcbaac82..50714e811 100644 --- a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php +++ b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php @@ -135,30 +135,29 @@ class ListActivitiesByAccompanyingPeriodContext implements return $normalized; } - public function filterActivitiesByCurrentUser(array $activities): array + public function filterActivitiesByUser(array $activities, User $user): array { return array_filter( $activities, - function ($activity) { + function ($activity) use ($user) { $activityUsernames = array_map(static function ($user) { return $user['username']; }, $activity['users'] ?? []); - - return in_array($this->security->getUser()->getUsername(), $activityUsernames, true); + return in_array($user->getUsername(), $activityUsernames, true); } ); } - public function filterWorksByCurrentUser(array $works): array + public function filterWorksByUser(array $works, User $user): array { return array_filter( $works, - function ($work) { + function ($work) use ($user) { $workUsernames = array_map(static function ($user) { return $user['username']; }, $work['referrers'] ?? []); - return in_array($this->security->getUser()->getUsername(), $workUsernames, true); + return in_array($user->getUsername(), $workUsernames, true); } ); } @@ -168,11 +167,10 @@ class ListActivitiesByAccompanyingPeriodContext implements $data = $this->accompanyingPeriodContext->getData($template, $entity, $contextGenerationData); $activities = $this->getActivitiesSimplified($entity); - $myActivitiesOnly = $contextGenerationData['myActivitiesOnly']; if ($myActivitiesOnly) { - $activities = $this->filterActivitiesByCurrentUser($activities); + $activities = $this->filterActivitiesByUser($activities, $contextGenerationData['creator']); } $data['activities'] = $activities; @@ -180,9 +178,8 @@ class ListActivitiesByAccompanyingPeriodContext implements $myWorksOnly = $contextGenerationData['myWorksOnly']; if ($myWorksOnly) { - $data['course']['works'] = $this->filterWorksByCurrentUser($data['course']['works']); + $data['course']['works'] = $this->filterWorksByUser($data['course']['works'], $contextGenerationData['creator']); } - return $data; }