hasAnyRole(['Admin', 'Super-Admin']); } /** * Admins sehen alle Partner; Partner sehen ihren eigenen Eintrag. */ public function view(User $user, Partner $partner): bool { if ($user->hasAnyRole(['Admin', 'Super-Admin'])) { return true; } return $user->partner_id === $partner->id; } /** * Nur Admins können neue Partner direkt anlegen (normale Partner werden eingeladen). */ public function create(User $user): bool { return $user->hasAnyRole(['Admin', 'Super-Admin']); } /** * Admins können jeden Partner bearbeiten. * Partner können ihr eigenes Profil bearbeiten. */ public function update(User $user, Partner $partner): bool { if ($user->hasAnyRole(['Admin', 'Super-Admin'])) { return true; } return $user->partner_id === $partner->id; } /** * Nur Admins können Partner löschen. */ public function delete(User $user, Partner $partner): bool { return $user->hasAnyRole(['Admin', 'Super-Admin']); } /** * Produkte eines Partners kuratieren (freigeben/ablehnen). */ public function curateProducts(User $user): bool { return $user->hasPermissionTo('curate products'); } }