app/Providers/JetstreamServiceProvider.php
Rama main · réplica de lectura del repositorio original.
<?php
namespace App\Providers;
use App\Actions\Jetstream\DeleteUser;
use Artwork\Modules\Department\Models\Department;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\ServiceProvider;
use Laravel\Jetstream\Jetstream;
class JetstreamServiceProvider extends ServiceProvider
{
public function register(): void
{
// Jetstreams eigene Routen (user/profile, Profilfoto löschen, andere Sitzungen beenden) nutzt
// artwork nicht; Profil und Foto laufen über eigene Routen im UserController. Weil
// config jetstream.guard = api ist, nahmen diese Routen Maschinen-Tokens der Schnittstelle
// ohne Scope-Prüfung an — ein Lese-Schlüssel bekam so die Profilseite seiner Besitzer:in.
Jetstream::ignoreRoutes();
}
public function boot(): void
{
$this->configurePermissions();
Jetstream::inertia()->whenRendering(
'Profile/Show',
//phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
function (Request $request, array $data) {
return array_merge($data, [
"all_departments" => Department::all(),
"user_departments" => Auth::user() -> departments,
]);
}
);
Jetstream::deleteUsersUsing(DeleteUser::class);
}
protected function configurePermissions(): void
{
Jetstream::defaultApiTokenPermissions(['read']);
Jetstream::permissions([
'create',
'read',
'update',
'delete',
]);
}
}