系统:
用户绑定到公司。公司拥有许可证。许可证有2个到期日期。 expirationBasic和expirationExtended。
我想要什么: 对于50条路线,我想检查已登录用户的公司的许可证现在是否具有expirationExtended>。
对于50条路线,我现在要检查已登录用户的公司的许可证是否具有expirationBasic>。
我正在使用symfony 3.4
答案 0 :(得分:0)
这个问题缺少细节,例如您希望系统在检查失败时执行的操作。至少有两种常见的方法来处理此问题。
“ Symfonic”方式是添加一个event filter。创建一个扩展EventSubscriberInterface
的新类,并将其放在您的EventSubscriber
目录/名称空间中。触发适当的事件后,您的方法可以执行检查并抛出和AccessDeniedHttpException
。
假设您的50条路线通向多个控制器,另一种解决方案是编写一个抽象控制器类,该类设置为最终控制器的父级。然后,该基类可以针对已登录的用户执行检查。