2013-04-01 11 views
6

Laravel 4のログインユーザーが正しいユーザーアカウントにアクセスできることをテストする方法を試しています。テスト済みのユーザーがLaravel 4の正しいIDを持っています

これは私のroutes.phpファイルの内容です。

Route::get('user/{id}', array('before' => 'auth', function(){ 
    // logged in user 
    // but can visit any account!! 
})); 

これは、ユーザー/ 1が現在ログインしているユーザーIDの場合のみプロファイルを表示できるようにするにはどうすればよいですか?

Auth::user()->id 

に対してテストするためのIDでログインしますが、私はそれがURL内の{ID}に等しいですチェックフィルタを作成する方法を考え出すことはできませんを返します。

助けてください!おかげさまで

答えて

6

Laravel ircチャンネルでいくつかの助けを得ました。

これは私が行った方法です。

Route::filter('user', function($route, $request) 
{ 
    if($request->segment(2) != Auth::user()->id) 
    { 
     return Redirect::to('/login'); 
    } 
}); 

その後、私のルート上で行います。

Route::get('user/{id}', array('before' => 'auth|user', 'uses' => '[email protected]'));