Beispiel #1
0
 /**
  * Create a new ACL Entry.
  *
  * @param int                                                             $mask
  * @param int                                                             $index
  * @param \Symfony\Component\Security\Acl\Model\SecurityIdentityInterface $securityIdentity
  * @param string                                                          $strategy
  * @param bool                                                            $granting
  * @param string                                                          $field
  *
  * @return \Propel\Bundle\PropelBundle\Security\Acl\Domain\Entry|\Propel\Bundle\PropelBundle\Security\Acl\Domain\FieldEntry
  */
 protected function createAce($mask, $index, SecurityIdentityInterface $securityIdentity, $strategy = null, $granting = true, $field = null)
 {
     if (!is_int($mask)) {
         throw new \InvalidArgumentException('The given mask is not valid. Please provide an integer.');
     }
     // Compatibility with default implementation
     if (null === $strategy) {
         if (true === $granting) {
             $strategy = PermissionGrantingStrategy::ALL;
         } else {
             $strategy = PermissionGrantingStrategy::ANY;
         }
     }
     $model = new ModelEntry();
     $model->setAceOrder($index)->setMask($mask)->setGrantingStrategy($strategy)->setGranting($granting)->setSecurityIdentity(SecurityIdentity::fromAclIdentity($securityIdentity));
     if (null !== $field) {
         $model->setFieldName($field);
         return new FieldEntry($model, $this);
     }
     return new Entry($model, $this);
 }