我有两个类型的用户为我的项目,管理员和客户。我需要阻止客户通过URL传递id来访问其他客户的详细信息,如下所述。在这个客户中有两个类别,高级客户和客户客户。这里还需要上述功能。我使用过滤器路由到不同的仪表板和管理员和客户端。我的filter.php文件如下。如何阻止相同类型的用户访问Laravel中的其他数据?
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::route('home');
}
}
});
Route::filter('admin', function()
{
if (Auth::user()->isAdmin != 0) return Redirect::route('getLogout');
});
Route::filter('client', function()
{
if (Auth::user()->isAdmin != 1) return Redirect::route('getLogout');
});
该工作正常。
但是,如果客户端试图通过URL访问其他客户端的详细信息,他会得到它。例如,在我的项目中有一个URL来访问客户端配置文件。这是通过像这样的“localhost/public/profile/{id}”传递客户端id来完成的。下面给出了route.php文件的一部分。
Route::group(array('before' => 'auth'), function()
{
Route::group(array('before' => 'auth|client'), function()
{
Route::get('profile/{id}', array('uses' => '[email protected]', 'as' =>'viewProfile'));
});
});
如何访问其他客户端通过传递它们的ID,使用过滤器或其他方法胎面花纹块的客户呢?我试图通过在控制器中指定,但它看起来不太好。
另外在我的客户中,有两种类型的客户端。高级和客户客户。这些类型在表名为客户端的名为Clients的模型中指定。在客户表中有字段命名类型。我需要阻止访客客户端访问高级客户端可以访问的某个URL。
任何人都可以帮忙吗?
谢谢...它工作正常 – manoos 2015-03-31 10:02:34