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

时间:2012-07-31 12:35:09

标签: php symfony

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

有没有人经历过与Symfony2的ACL系统如何实现相似或类似的事情?

愿意接受任何建议。

1 个答案:

答案 0 :(得分:0)

我对比赛来说太迟了,但也许这会帮助其他人?

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;
     }
 }