]> BookStack Code Mirror - bookstack/blob - app/Http/Middleware/Localization.php
Add socialite authentication for okta
[bookstack] / app / Http / Middleware / Localization.php
1 <?php namespace BookStack\Http\Middleware;
2
3 use Carbon\Carbon;
4 use Closure;
5
6 class Localization
7 {
8     /**
9      * Handle an incoming request.
10      *
11      * @param  \Illuminate\Http\Request  $request
12      * @param  \Closure  $next
13      * @return mixed
14      */
15     public function handle($request, Closure $next)
16     {
17         $defaultLang = config('app.locale');
18         if (user()->isDefault()) {
19             $locale = $defaultLang;
20             $availableLocales = config('app.locales');
21             foreach ($request->getLanguages() as $lang) {
22                 if (!in_array($lang, $availableLocales)) continue;
23                 $locale = $lang;
24                 break;
25             }
26         } else {
27             $locale = setting()->getUser(user(), 'language', $defaultLang);
28         }
29         app()->setLocale($locale);
30         Carbon::setLocale($locale);
31         return $next($request);
32     }
33 }