2014-11-06 91 views
0

我正在實施禁止系統。我有一個管理員視圖,管理員可以禁止用戶。如果管理員在那一刻禁止他,我想註銷一個用戶。類似於Auth::logout($user)。那可能嗎??或者,我必須爲我的所有路線添加過濾器,以檢查記錄的用戶是否被禁止。Laravel Auth註銷惡意用戶

+0

的'註銷()'方法不帶任何參數。 – 2014-11-06 23:57:09

+0

我知道......這就是爲什麼我問這個......這只是一個想法。 – 2014-11-07 01:01:15

回答

0

過濾器是要走的路。解決這個問題很簡單,很簡單,參見下面的示例。

如果用戶在任何時候都被禁止,它將在他/她的下一個請求中註銷用戶,您可以使用會話flash消息重定向用戶,您的登錄代碼將按原樣運行。

Route::filter('auth', function() 
{ 
    if (Auth::guest()) 
    { 
     if (Request::ajax()) 
     { 
      return Response::make('Unauthorized', 401); 
     } 
     else 
     { 
      return Redirect::guest('login'); 
     } 
} 
else 
{ 
    // If the user is banned, immediately log out. 
    if(Auth::check() && !Auth::user()->bannedFlag) 
    { 
     Auth::logout(); 
     Session::flash('message','Your account is banned, please contact your administrator    to active your account'); 

     // redirect to login page 
     return Redirect::to('/'); 
    } 
} 
}); 

,併爲您的路由使用組路線

Route::group(array('before' => 'auth'), function() 
{ 
     //use your routes 
}); 
+0

我認爲我正在反思它。謝謝。 – 2014-11-07 21:51:08

+0

歡迎你... – 2014-11-08 06:04:24