【问题标题】:Filtering User Access to Routes by Role using Laravel使用 Laravel 按角色过滤用户对路由的访问
【发布时间】:2014-07-02 16:05:28
【问题描述】:

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

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

【问题讨论】:

    标签: laravel laravel-4 eloquent


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-01-14
      • 2013-01-27
      • 2021-07-02
      • 2014-11-15
      • 2020-01-31
      • 2015-08-15
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      相关资源
      最近更新 更多