使用Laravel按角色过滤用户对路径的访问

时间:2014-07-02 07:17:10

标签: laravel laravel-4 eloquent

我有2个不同的用户角色,管理员和客户。

如何创建过滤器,以便在用户登录时可以访问管理员角色 可以创建,更新,删除,读取的路由,而客户端角色只能访问 读路线?不使用模块。

1 个答案:

答案 0 :(得分:2)

您可以使用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'
));