我從官方Symfony2 doc on Security中看到,除了「經典」角色(即ROLE_USER,ROLE_ADMIN等)之外,還可以定義新角色。如何在Symfony2中創建並註冊新角色
我如何定義新角色,爲了在security.yml創建角色層次他們註冊到我的Symfony2的應用程序?
對不起,打擾了你們所有人!我認爲答案很簡單。實際上,通過ROLE_開始使用新角色似乎已經足夠了。 例如,可以說ROLE_NEWS_AUTHOR只允許具有該角色的人能夠在網站中插入新聞。
謝謝。
我從官方Symfony2 doc on Security中看到,除了「經典」角色(即ROLE_USER,ROLE_ADMIN等)之外,還可以定義新角色。如何在Symfony2中創建並註冊新角色
我如何定義新角色,爲了在security.yml創建角色層次他們註冊到我的Symfony2的應用程序?
對不起,打擾了你們所有人!我認爲答案很簡單。實際上,通過ROLE_開始使用新角色似乎已經足夠了。 例如,可以說ROLE_NEWS_AUTHOR只允許具有該角色的人能夠在網站中插入新聞。
謝謝。
當然,你可以簡單地添加開始ROLE_SOMEROLE.In security.yml文件中的任何角色有兩個主要部分1.limit訪問2.誰是承包商,客人可以訪問
一個。 access_control:限制模式並指定可以訪問的角色。 b。 role_hierarchy:這裏是角色的層次結構,對於下面的例子,一個Admin用戶(ROLE_ADMIN)具有角色ROLE_USER,ROLE_NEWS_AUTHOR。因此,他可以訪問USER和NEWS_AUTHOR的所有頁面。無論您可以提供哪種層次結構。
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }/login any one can access this pattern
- { path: ^/admin/, roles: ROLE_ADMIN }//block all pattern /admin/anything*
- { path: ^/news/, roles: ROLE_NEWS_AUTHOR } //block all pattern /news/anything*
role_hierarchy:
ROLE_ADMIN: [ROLE_USER,ROLE_NEWS_AUTHOR]
在你的控制器,你可以檢查的作用,
if(TRUE ===$this->get('security.context')->isGranted('ROLE_ADMIN'))
{
// do something related to ADMIN
}
else if(TRUE ===$this->get('security.context')->isGranted('ROLE_NEWS_AUTHOR'))
{
// do something related to News Editor
}
希望這有助於你。 有趣的編碼。
感謝您的額外信息。 – JeanValjean 2012-04-23 11:47:28
另請注意,角色名稱應始終以「ROLE_」開頭或Symfony無法識別它們。 – DarksteelPenguin 2016-05-31 09:03:24