1
A
回答
2
我不会看到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(“编辑”)使用哨兵检查,如果用户可以编辑文章,即使他们不是作者的一部分。
您可能想抽象出所有者检查,但是如果您在多个位置检查,以防您改变您在任何时候评估所有权的方式。
相关问题
- 1. Laravel:在哨兵中添加权限
- 2. 哨兵2 - 创建组权限 - Laravel包
- 3. Laravel 4播种类哨兵
- 4. 哨兵2 laravel 4 ACL
- 5. 使用Laravel的哨兵2检查权限的最佳方法
- 6. Laravel的哨兵使用
- 7. 如何在laravel中使用哨兵限制访问删除
- 8. 用PHP设置哨兵
- 9. 如何设置哨兵时区?
- 10. Laravel> Cartalyst>哨兵在运行时添加删除权限
- 11. Laravel哨兵捕捉错误
- 12. Laravel 5哨兵/注册
- 13. laravel 4哨兵2如何更改密码和重新编号
- 14. 哨兵2 - 如何控制拒绝组权限
- 15. 哨兵2和Laravel 4将字段添加到用户模型
- 16. Laravel将哨兵用户注入模型
- 17. WSO2 EMM的设备所有者权限
- 18. 数据库设置Cartalyst /哨兵
- 19. 设置哨兵值java代码
- 20. 同一laravel应用中的多个哨兵配置
- 21. 哨兵2(通过Cartalyst)与相应路线相关的权限?
- 22. Laravel 5.1哨兵::的getUser()返回null
- 23. 哨兵使用等级
- 24. 如何在cartalyst哨兵
- 25. RackTables设置所有权和权限
- 26. 哨兵2与Laravel 4,请记住身份验证
- 27. Laravel 4和哨兵2 ACL结构和访问控制水平
- 28. Laravel哨兵2:密码错误?
- 29. Android:如何设置所有使用权限?
- 30. Laravel背包设置权限
是的,我认为简单的解决方案就是这样。 感谢您的回答。 :) 但是,我认为条件语句应该使用&& not ||。 – antoniputra
我想,我的问题由laravel acl回答。 :D – antoniputra
如果必须满足两个条件(AND),那么您可以&& - 在上述情况下需要满足(OR)条件 - 该人员必须是所有者或编辑者 - 因此||用来 – glendaviesnz