/** * 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); }