Update MeetupController to use pivot memberships for "My Meetups" in both listing and detail views

- ✏️ Adjust `mine` method to fetch meetups based on dashboard selections (`meetup_user` pivot).
- ✏️ Add `viewMine` policy to control access to individual meetups for pivot members.
- 🧪 Update feature tests to reflect pivot-based logic for "My Meetups."
This commit is contained in:
HolgerHatGarKeineNode
2026-06-13 22:42:33 +02:00
parent b6f5d57530
commit 8d7b1515d8
3 changed files with 39 additions and 14 deletions
@@ -106,14 +106,15 @@ class MeetupController extends Controller
/**
* Eigene Meetups auflisten
*
* Liefert alle vom authentifizierten Nutzer erstellten Meetups, alphabetisch sortiert.
* Liefert die im Dashboard ausgewählten Meetups des authentifizierten Nutzers
* (meetup_user-Pivot, „Meine Meetups"), alphabetisch sortiert.
*/
public function mine(Request $request): AnonymousResourceCollection
{
Gate::authorize('viewAny', Meetup::class);
$meetups = Meetup::query()
->where('created_by', $request->user()->id)
$meetups = $request->user()
->meetups()
->orderBy('name')
->get();
@@ -123,12 +124,12 @@ class MeetupController extends Controller
/**
* Eigenes Meetup anzeigen
*
* Zeigt ein einzelnes, vom authentifizierten Nutzer erstelltes Meetup.
* Zeigt ein einzelnes der im Dashboard ausgewählten Meetups (meetup_user-Pivot).
*/
#[Response(status: 403, description: 'Nur der Ersteller oder ein Super-Admin darf das Meetup sehen.')]
#[Response(status: 403, description: 'Nur der Ersteller oder ein Mitglied (meetup_user-Pivot) darf das Meetup sehen.')]
public function mineShow(Meetup $meetup): MeetupResource
{
Gate::authorize('view', $meetup);
Gate::authorize('viewMine', $meetup);
return MeetupResource::make($meetup);
}