Laravel 4,Sentry 2和用户权限

时间:2013-11-02 15:51:53

标签: laravel laravel-4 cartalyst-sentry

我即将开始构建一个系统,该系统需要选择一组问题并保存为清单文档,以便分发给任意一组用户。

我打算使用Laravel 4作为我的框架,使用Sentry 2来处理权限。

我的问题是:

如果我使用一个用户,比如说, Admin 级别访问权限来创建一个检查列表而我有100个 Inspector 级用户,我可以限制访问权限吗?使用Sentry的每个用户的单个清单?理想情况下,我希望允许用户访问单个清单(检查集合)。

1 个答案:

答案 0 :(得分:1)

您可以轻松地为清单创建单独的组:

// Create the group
$group = Sentry::createGroup(array(
    'name'        => 'Administrators',
    'permissions' => array(
        'checklists.admin' => 1,
        'checklists.view' => 1,
    ),
));

// Create the group
$group = Sentry::createGroup(array(
    'name'        => 'checklists.view.101',
    'permissions' => array(
        'checklists.view.101' => 1,
    ),
));

将您的用户添加到核对清单组:

$user = Sentry::getUser()->addGroup( Sentry::getGroupProvider()->findByName('Checklist101') );

并检查它是否可以访问它:

return $user->hasAnyAccess(['checklists.view', 'checklists.view.101'])

在这种情况下,如果您的用户是管理员,它也可以查看它。