예제 #1
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     // Detect the bot case => if bot we do nothing
     $isBot = isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT']);
     /**
      * If User has never been logged => it will be redirected to his local url
      */
     if (!$request->cookie('locale') && !$isBot) {
         $locale = \App::getLocale();
         // if local doesn't match the current user local => we redirect
         $preferedLocale = $request->getPreferredLanguage($this->locales);
         // If local doesn't match the current user => we redirect the user to the correct url
         if ($locale !== $preferedLocale) {
             // Get Locales of the preferred local
             Session::put('locale', $preferedLocale);
         }
     } elseif ($request->cookie('locale')) {
         Session::put('locale', $request->cookie('locale'));
     }
     if ($request->has('force_locale')) {
         Session::put('locale', $request->get('force_locale'));
         \App::setLocale(Session::get('locale', env('APP_DEFAULT_LOCALE', 'en')));
         return $next($request)->withCookie(cookie()->forever('locale', Session::get('locale')));
     }
     \App::setLocale(Session::get('locale', env('APP_DEFAULT_LOCALE', 'en')));
     return $next($request);
 }
예제 #2
0
파일: lang.php 프로젝트: Pheonick/whatsnext
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $lang = $request->cookie('language');
     if (!empty($lang)) {
         \App::setLocale($lang);
     }
     return $next($request);
 }
예제 #3
0
파일: App.php 프로젝트: johnyhunt/lumina
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if (!Session::has('locale')) {
         Session::put('locale', 'en');
     }
     \App::setLocale(\Session::get("locale"));
     return $next($request);
 }
예제 #4
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $allowed_locales = ['en', 'fr'];
     if (in_array($request->input('locale'), $allowed_locales)) {
         \App::setLocale($request->input('locale'));
     }
     return $next($request);
 }
예제 #5
0
 public function handle($request, Closure $next)
 {
     $lang = \Session::get('locale');
     if ($lang) {
         \App::setLocale($lang);
         return $next($request);
     }
     return $next($request);
 }
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $lang = Config::get('app.local');
     // if current local url match request url => we keep the current lang
     foreach ($this->locales as $lang => $local) {
         if ($local['url'] == $request->url()) {
             break;
             //  keep the current lang definition
         }
     }
     \App::setLocale($lang);
     return $next($request);
 }
예제 #7
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if ($this->auth->guest()) {
         if ($request->ajax()) {
             return response('Unauthorized.', 401);
         } else {
             return redirect()->guest('auth/login');
         }
     }
     // set language
     \App::setLocale(\Session::get('lang'));
     return $next($request);
 }
예제 #8
0
 /**
  * Handle the locale for the user, default to settings otherwise
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @param  string|null  $guard
  * @return mixed
  */
 public function handle($request, Closure $next, $guard = null)
 {
     if (Schema::hasTable('settings')) {
         // User's preference
         if ($request->user() && $request->user()->locale) {
             \App::setLocale($request->user()->locale);
             // App setting preference
         } elseif (Setting::getSettings() && Setting::getSettings()->locale != '') {
             \App::setLocale(Setting::getSettings()->locale);
             // Default app setting
         } else {
             \App::setLocale(config('app.locale'));
         }
     }
     \App::setLocale(config('app.locale'));
     return $next($request);
 }
예제 #9
0
 public function handle($request, Closure $next)
 {
     $raw_locale = get('locale');
     # Если пользователь уже был на нашем сайте,
     # то в сессии будет значение выбранного им языка.
     if (in_array($raw_locale, Config::get('app.locales'))) {
         # Проверяем, что у пользователя в сессии установлен доступный язык
         $locale = $raw_locale;
         # (а не какая-нибудь бяка)
     } else {
         $locale = Config::get('app.locale');
     }
     # В ином случае присваиваем ей язык по умолчанию
     App::setLocale($locale);
     # Устанавливаем локаль приложения
     return $next($request);
     # И позволяем приложению работать дальше
 }
예제 #10
0
파일: AdminAuth.php 프로젝트: gtcrais/gtcms
 public function handle($request, Closure $next, $guard = null)
 {
     \App::setLocale(config('gtcmslang.defaultAdminLocale'));
     $showLoginMessage = true;
     if (config('gtcms.adminAutoLogin') && \Auth::guest()) {
         $user = User::where('role', 'admin')->first();
         \Auth::login($user);
         $showLoginMessage = false;
     }
     $allowedUserRoles = config('gtcms.allowedUserRoles');
     if (\Auth::guest() || !in_array(\Auth::user()->role, $allowedUserRoles)) {
         if (\Route::current()->uri() != "admin/login") {
             if (\Request::ajax() && \Request::get('getIgnore_isAjax')) {
                 $data = array('success' => false, 'message' => "Session timeout", 'redirectToLogin' => true);
                 return \Response::json($data);
             } else {
                 return \Redirect::to('/admin/login');
             }
         }
     } else {
         if (\Route::current()->uri() == "admin/login") {
             if ($showLoginMessage) {
                 MessageManager::setError(trans('gtcms.alreadyLoggedIn'));
             }
             return \Redirect::to("/admin");
         }
     }
     if (\Session::get('accessDenied')) {
         if (\Route::currentRouteName() != "restricted") {
             \Session::put('accessDenied', true);
             return \Redirect::to('/access-denied');
         }
     } else {
         if (\Route::currentRouteName() == "restricted") {
             MessageManager::setError(trans('gtcms.accessGranted'));
             \Session::put('accessDenied', false);
             return \Redirect::to("/admin");
         }
     }
     return $next($request);
 }
예제 #11
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     /*
             if(\Session::get('locale') == "") {
                 switch(strtolower($this->langauge)){
                     case 'ge' :
                         \Session::put('locale','ge');
                         break;
                     case 'ru' :
                         \Session::put('locale','ru');
                         break;
                     case 'ua' :
                         \Session::put('locale','ru');
                         break;
                     default:
                         \Session::put('locale','en');
                         break;
                 }
             }*/
     $locale = !empty($request->cookie('locale')) ? $request->cookie('locale') : \App::getLocale();
     \App::setLocale($locale);
     return $next($request);
 }
예제 #12
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     \App::setLocale($request->lang);
     return $next($request);
 }
예제 #13
0
파일: Locale.php 프로젝트: lyovkin/v2board
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     \App::setLocale(\Session::get('language'));
     return $next($request);
 }