【发布时间】:2014-07-02 16:05:28
【问题描述】:
我有 2 个不同的用户角色,管理员和客户。
如何创建过滤器,以便在用户以管理员角色登录时可以访问 可以创建、更新、删除、读取的路由,而客户端角色只能访问 阅读路线?不使用模块。
【问题讨论】:
标签: laravel laravel-4 eloquent
我有 2 个不同的用户角色,管理员和客户。
如何创建过滤器,以便在用户以管理员角色登录时可以访问 可以创建、更新、删除、读取的路由,而客户端角色只能访问 阅读路线?不使用模块。
【问题讨论】:
标签: laravel laravel-4 eloquent
您可以使用route filters 实现此目的。
Route::filter('auth.isAdmin', function()
{
// Get authenticated user
$user = Auth::user()
if (!$user->isAdmin()) {
// Redirect user away, display an error message, log attempt, whatever...
}
});
在您的用户模型中创建isAdmin 方法:
public function isAdmin($permission)
{
// if user has admin role
// return true
// else
// return false
}
您现在可以通过将过滤器附加到相关路由来保护您的页面。
Route::get('foo/bar', array(
'before' => 'auth.isAdmin'
));
【讨论】: