2

我有一个 Symfony 2.1 应用程序,它具有各种访问控制区域。我的设置包括一个供用户管理其帐户的管理区域,另一个供公司管理员用户管理其公司帐户的区域以及我们和办公室工作人员的后端。

所有这些不同的用户都定义了角色,ROLE_ADMIN、ROLE_COMPANY_ADMIN 等。在我的 security.yml 中设置的防火墙可以很好地处理这些不同的情况,但是当用户访问没有所需角色的页面时,会得到一个通用的 403 禁止页面。

我希望有一个自定义页面,该页面具有不同的内容,具体取决于用户缺少的所需角色。即,您无法访问此页面,因为您不是管理员|公司管理员。

我需要检索导致异常的路由的所需角色,然后我可以将其与用户进行比较。有没有好的方法来做到这一点?

非常感谢,艾尔

4

1 回答 1

1

您可以添加自定义访问拒绝 url 并实现自己的控制器。

一个很好的例子贴在这里: http: //michelsalib.com/2011/03/31/advance-customization-of-the-403-error-page-in-symfony2/

于 2013-04-12T14:07:34.407 回答