Laravel 4、Sentry 2和用户权限

Laravel 4、Sentry 2和用户权限,laravel,laravel-4,cartalyst-sentry,Laravel,Laravel 4,Cartalyst Sentry,我即将开始构建一个系统,需要选择一组问题并将其保存为清单文档,以便分发给任意一组用户 我打算使用Laravel4作为我的框架,使用Sentry2来处理权限 我的问题是: 如果我使用一个具有管理员级访问权限的用户来创建一个检查列表,并且我有100个检查员级用户,那么我可以限制每个使用Sentry的用户访问一个检查列表吗?理想情况下,我希望允许用户访问单个检查表(检查集合)。您可以轻松地为检查表创建单独的组: // Create the group $group = Sentry::createGr

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

我打算使用Laravel4作为我的框架,使用Sentry2来处理权限

我的问题是:


如果我使用一个具有管理员级访问权限的用户来创建一个检查列表,并且我有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'])

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

您可以轻松地为您的检查列表创建单独的组:

// 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'])

在这种情况下,如果您的用户是管理员,它也将能够查看该列表。

感谢您的回复,但是如果动态创建检查列表,这将不起作用,除非每次创建列表时,我都会创建一个组,特别是为该列表创建一个组,并将用户分配给新组。这不会最终污染用户组表吗?就我个人而言,我现在正在考虑将用户/检查列表分离到一个列出检查列表ID和允许的用户ID的查找表。如果有一种方法可以将真实组与列表组分离,那么“污染”组表的问题是什么?在我看来,这比创建完全不同的东西来处理应该由主授权类处理的东西要好。很公平,我可以理解你的观点。我知道我也可以使用特定于用户的权限。再次感谢。感谢您的回复,但如果动态创建检查表,则这将不起作用,除非每次创建列表时,我都会专门为该列表创建一个组,并将用户分配给新组。这不会最终污染用户组表吗?就我个人而言,我现在正在考虑将用户/检查列表分离到一个列出检查列表ID和允许的用户ID的查找表。如果有一种方法可以将真实组与列表组分离,那么“污染”组表的问题是什么?在我看来,这比创建完全不同的东西来处理应该由主授权类处理的东西要好。很公平,我可以理解你的观点。我知道我也可以使用特定于用户的权限。再次感谢你。