如何在Laravel 4中实现用户权限


How to implement user permissions in Laravel 4?

我主要想要的是用户权限。

我的数据库中有一个名为"accounts"的表。有一个名为"group_id"的列。我想在'group_id'=3时设置它,然后用户是admin。然后他可以查看特殊的网站、按钮和诸如此类的东西。我试着实现这样的东西:

public function ($roleName) {
    $role = $this->roles;
    if ($role->name == $roleName) {
        return true;
    }
    return false;
}

此外,我不知道这个模型需要什么以及如何使用,我是否需要一个新的模型之类的东西。

旧帖子,但也许有人会发现这个有用的

在用户模型中添加一个方法,如果用户是管理员,该方法将返回true。在我们的例子中,它只是"我们的group_id等于3吗?"

// models/User.php
class User extends Eloquent 
{
    ... 
    public function isAdmin()
    {
        return $this->group_id == 3;
    }
}

接下来添加一个可用于保护路线的过滤器

// filters.php
Route::filter('admin', function($route, $request)
{
    if ( ! Auth::user()->isAdmin())
    {
        return App::abort(401, 'You are not authorized.');
    }
});

最后使用过滤器来保护一组路由。在这种简化的情况下,只有管理员用户才能访问/admin

// routes.php
Route::group(array('before' => array('auth|admin')), function()
{
    Route::get('/admin', function()
    {
        return Response::make("You're an admin!");
    }
});

基于此帖子:http://laravelsnippets.com/snippets/admin-route-filter

我建议授权Laravel 4

我个人使用Verify包进行用户管理。