我即将开始构建一个系统,该系统需要选择一组问题并将其保存为清单文档以分发给任意一组用户。
我打算使用 Laravel 4 作为我的框架和 Sentry 2 来处理权限。
我的问题是:
如果我使用具有管理员级别访问权限的用户来创建检查列表,并且我有 100 个检查员级别用户,我可以限制使用 Sentry 的每个用户访问单个检查列表吗?理想情况下,我希望允许用户访问单个清单(检查集合)。
我即将开始构建一个系统,该系统需要选择一组问题并将其保存为清单文档以分发给任意一组用户。
我打算使用 Laravel 4 作为我的框架和 Sentry 2 来处理权限。
我的问题是:
如果我使用具有管理员级别访问权限的用户来创建检查列表,并且我有 100 个检查员级别用户,我可以限制使用 Sentry 的每个用户访问单个检查列表吗?理想情况下,我希望允许用户访问单个清单(检查集合)。
您可以轻松地为您的清单创建单独的组:
// 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'])
在这种情况下,如果您的用户是管理员,它也将能够查看它。