mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-app.git
synced 2026-06-17 16:40:31 +00:00
8d7b1515d8
- ✏️ 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."
56 lines
1.6 KiB
PHP
56 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Policies;
|
|
|
|
use App\Models\Meetup;
|
|
use App\Models\User;
|
|
use App\Policies\Concerns\ChecksCreatorOwnership;
|
|
|
|
class MeetupPolicy
|
|
{
|
|
use ChecksCreatorOwnership;
|
|
|
|
public function viewAny(User $user): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function view(User $user, Meetup $meetup): bool
|
|
{
|
|
return $this->owns($user, $meetup);
|
|
}
|
|
|
|
/**
|
|
* Sichtbarkeit der „Meine Meetups"-Detailansicht: Neben dem Ersteller darf
|
|
* jedes Mitglied der meetup_user-Pivot („Meine Meetups" im Dashboard) das
|
|
* abonnierte Meetup über die REST-API ansehen. Spiegelt die Listen-Semantik
|
|
* von MeetupController::mine(), die ebenfalls die Pivot-Mitgliedschaft nutzt.
|
|
*/
|
|
public function viewMine(User $user, Meetup $meetup): bool
|
|
{
|
|
return $this->owns($user, $meetup) || $meetup->hasMember($user);
|
|
}
|
|
|
|
public function create(User $user): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function update(User $user, Meetup $meetup): bool
|
|
{
|
|
return $this->owns($user, $meetup);
|
|
}
|
|
|
|
/**
|
|
* Gelockerte Update-Regel ausschließlich für das Portal-Frontend (Livewire):
|
|
* Neben dem Ersteller darf auch jedes Mitglied der meetup_user-Pivot
|
|
* („Meine Meetups" im Dashboard) die Stammdaten bearbeiten. REST-API und
|
|
* MCP nutzen weiterhin die strikte update()-Ability. Übergangslösung, bis
|
|
* ein echtes Rollen-/Freigabekonzept existiert.
|
|
*/
|
|
public function updateViaPortal(User $user, Meetup $meetup): bool
|
|
{
|
|
return $this->owns($user, $meetup) || $meetup->hasMember($user);
|
|
}
|
|
}
|