Laravel 4 如何使用sentry laravel 4设置所有者的权限
我在用哨兵来申请 但是,我仍然对实施哨兵许可来声明对象的所有者感到困惑 例如:任何写文章的作者Laravel 4 如何使用sentry laravel 4设置所有者的权限,laravel-4,cartalyst-sentry,Laravel 4,Cartalyst Sentry,我在用哨兵来申请 但是,我仍然对实施哨兵许可来声明对象的所有者感到困惑 例如:任何写文章的作者 我的问题:如何设置文章所有者的权限?我不认为Sentry用于此,因为它只是当前用户id与文章作者id的简单比较。要使用默认Sentry权限,您需要为用户添加的每一篇文章的用户权限添加一个新权限,据我所知——或者用自定义函数扩展Sentry包来处理这个问题 另一种方法是使用Sentry,首先通过向用户添加作者权限或创建作者组来检查用户是否允许添加文章,然后通过比较用户和作者id来检查他们是否是所有者。您
我的问题:如何设置文章所有者的权限?我不认为Sentry用于此,因为它只是当前用户id与文章作者id的简单比较。要使用默认Sentry权限,您需要为用户添加的每一篇文章的用户权限添加一个新权限,据我所知——或者用自定义函数扩展Sentry包来处理这个问题 另一种方法是使用Sentry,首先通过向用户添加作者权限或创建作者组来检查用户是否允许添加文章,然后通过比较用户和作者id来检查他们是否是所有者。您还可以为可以编辑任何文章的用户设置编辑权限或组。然后,检查将类似于:
//see if user can add article via sentry permissions
if ($current_user->hasAccess('author'))
//see if user can edit current article if they are author, or have edit permissions
if (($current_user->id == article->author_id) || $current_user->hasAccess('edit'))
使用hasAccess(“编辑”)部分,使用Sentry检查用户是否可以编辑文章,即使他们不是作者
如果您在多个位置进行检查,以防在任何时候更改评估所有权的方式,您可能会希望提取出所有者检查。是的,我认为简单的解决方案是这样的。谢谢你的回答。:)但是,我认为条件语句应该使用&¬ | |。我想,我的问题由laravel acl vivify回答:如果两个条件都必须满足(并且)-在上述情况下需要满足(或者)条件-此人必须是所有者或编辑-因此使用| |