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