在我的Symfony2項目中,我設法在官方文檔中設置了FOSUserBundle + SonataUserBundle + SonataAdminBundle。現在來設置ACL(訪問控制列表)。ACL + SonataAdminBundle + SonataUserBundle
我所做的:
創建了一個名爲AdminReport的AdminClass
應用程序/控制檯奏鳴曲:管理員:設置的ACL
install ACL for sonata.admin.report update role: ROLE_SONATA_ADMIN_REPORT_GUEST, permissions: ["LIST"] update role: ROLE_SONATA_ADMIN_REPORT_STAFF, permissions: ["LIST","CREATE"] update role: ROLE_SONATA_ADMIN_REPORT_EDITOR, permissions: ["OPERATOR","EXPORT"]
- 創建新用戶,授予他與ROLE_SONATA_ADMIN_REPORT_STAFF
- ap P /控制檯奏鳴曲:管理員:生成對象的ACL
- 在登錄時該用戶和訪問默認/管理/儀表板
包含AdminReport應該出現的塊,但它不是...我失蹤什麼?
這裏是我的config.yml
sonata_admin: security: handler: sonata.admin.security.handler.acl information: GUEST: [VIEW, LIST] STAFF: [EDIT, LIST, CREATE] EDITOR: [OPERATOR, EXPORT] ADMIN: [MASTER] admin_permissions: [CREATE, LIST, DELETE, UNDELETE, EXPORT, OPERATOR, MASTER] object_permissions: [VIEW, EDIT, DELETE, UNDELETE, OPERATOR, MASTER, OWNER]
編輯 我試圖與該用戶直接訪問app_dev.php /管理/應用程序/報告/列表,Symfony的拋出拒絕訪問錯誤。日誌說
DEBUG-訪問被拒絕,用戶既不是匿名的,也不記得我。 如果我訪問app_dev.php/admin/app/report/list,它的工作原理!
於是,我就從
sonata.admin.security.handler.acl處理程序更改爲
sonata.admin.security.handler.roles
它的工作原理,因爲我可以看到在管理儀表板塊。我也嘗試將
access_decision_manager: strategy: unanimous更改爲
affirmative,但它不起作用...
我絕對錯過了某些東西,但在哪裏?
呀這裏同樣的問題,我工作的實際。當我已經解決了這個問題,我給你一個解決方案:) –
你從你的研究提供新的信息?我完全堅持這一... –
我做了周圍的一些調整和得到的東西的功能,我已經離開幾分鐘時,我會寫一個答案:) –