2013-11-02 49 views
1

我即将开始构建一个系统,该系统将要求选定一组问题并将其保存为清单文档,以便分发给任意一组用户。Laravel 4,Sentry 2和用户权限

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

我的问题是:

如果我用一个用户,可以说,联系级访问创建检查清单,我有,说100,督察级别的用户,我可以限制访问使用Sentry的每个用户的单个清单?我最好希望允许用户访问单个清单(检查的集合)。

回答

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

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

+0

感谢您的回复,但如果检查列表是动态创建的,除非每次创建列表时,我都会创建一个专门用于该列表的组,并将用户分配给新组。这不会最终会污染用户组表吗?就我个人而言,我现在正在考虑将用户/检查列表分隔到列出检查列表ID和允许的用户ID的查找表中。 – Wally

+0

有一种方法可以将真实群组与列表群组分开,“污染”群组表格有什么问题? Imo比仅仅创建完全不同的东西来处理应该由主授权类处理的东西要好得多。 –

+0

够公平的,我可以在那里看到你的观点。我看到我也可以使用用户特定的权限。再一次,我的谢意。 – Wally