3

使用 SymfonyVoters系统很容易为 Web 应用程序建立和运行一个好的 ACL。但是,您必须在一开始就决定要使用哪种策略。

Symfony 支持 3 种策略:affirmativeconsensusunanimous参见他们的文档

affirmative(默认):一旦有一个投票者授予访问权限,就会授予访问权限;
consensus:如果允许访问的选民多于拒绝访问的选民,则授予访问权限;
unanimous:这仅在所有选民授予访问权限后才授予访问权限。

我目前正在使用该affirmative策略。在一种特殊情况下(到目前为止,将来可能还会有更多),我需要使用该unanimous策略。

有没有办法做到这一点,还是我只需要在那里建立一个自定义检查系统(复制所有相关选民的代码)?

4

1 回答 1

0

您是否尝试过AccessDecisionManager使用自己的策略通过自定义类扩展 Symfony 并在服务容器中注册它?你可以检查这个类的实现,并看到你可以通过在类中创建一个简单的方法来定义你自己的策略。

另一种选择是您可以尝试使用access_control,如此allow_if所述

于 2016-07-02T19:44:35.480 回答