openclassify/app/Providers/AppServiceProvider.php
2026-03-08 03:32:25 +03:00

50 lines
1.5 KiB
PHP

<?php
namespace App\Providers;
use BezhanSalleh\LanguageSwitch\LanguageSwitch;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use SocialiteProviders\Manager\SocialiteWasCalled;
class AppServiceProvider extends ServiceProvider
{
public function register(): void
{
}
public function boot(): void
{
Gate::before(function ($user): null | bool {
if (method_exists($user, 'hasRole') && $user->hasRole('admin')) {
return true;
}
return null;
});
View::addNamespace('app', resource_path('views'));
Event::listen(function (SocialiteWasCalled $event): void {
$event->extendSocialite('apple', \SocialiteProviders\Apple\Provider::class);
});
$availableLocales = config('app.available_locales', ['en']);
$localeLabels = [
'en' => 'English',
'tr' => 'Turkish',
];
LanguageSwitch::configureUsing(function (LanguageSwitch $switch) use ($availableLocales, $localeLabels): void {
$switch
->locales($availableLocales)
->labels(collect($availableLocales)->mapWithKeys(
fn (string $locale) => [$locale => $localeLabels[$locale] ?? strtoupper($locale)]
)->all())
->visible(insidePanels: count($availableLocales) > 1, outsidePanels: false);
});
}
}