確かに、ROLE_SOMEROLE で始まる任意のロールを簡単に追加できます。security.yml ファイルには、1.アクセスを制限するための 2 つの主要部分があります。
を。access_control: パターンを限定し、アクセスできるロールを指定します。b. role_hierarchy: ここではロールの階層構造です。以下の例では、管理者ユーザー (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
}
これがお役に立てば幸いです。ハッピーコーディング。