Symfony2:关于实现每个用户每个公司权限的角色的建议


Symfony2: advice on implementing role per user per company permissions

我正在为一个绿地项目评估Symfony2。核心要求之一是:;用户可以与许多公司相关联,并且这些关联中的每一个都可以具有由角色标识的不同权限集。

有没有人有过类似的实施经验,或者对如何使用Symfony2的ACL系统实现这一点有什么看法?

将感激地接受任何建议。

我来不及玩游戏了,但也许这会帮助其他人?

http://brentertainment.com/2012/02/28/contextualizing-your-symfony2-application-with-the-service-container/

简而言之,你可以使用自定义投票者,然后利用第二个对象,你可以将其传递到投票者中,并使用它来将你的安全检查上下文化,如

public function vote(TokenInterface $token, $object, array $attributes)
     {
         if ($this->supportsClass($object) && $company = $this->container->get('context.company')) {
             foreach ($attributes as $attribute) {
                 if ($this->supportsAttribute($attribute)) {
                     if ($company == $object->getCompany()) {
                         return VoterInterface::ACCESS_GRANTED;
                     }
                     return VoterInterface::ACCESS_DENIED;
                 }
             }
         }
         return VoterInterface::ACCESS_ABSTAIN;
     }
 }