class MutableAclProvider extends AclProvider implements MutableAclProviderInterface, PropertyChangedListener

An implementation of the MutableAclProviderInterface using Doctrine DBAL.

Constants

MAX_BATCH_SIZE

Methods

__construct(Connection $connection, PermissionGrantingStrategyInterface $permissionGrantingStrategy, array $options, AclCacheInterface $cache = null)

Constructor.

array
findChildren(ObjectIdentityInterface $parentOid, bool $directChildrenOnly = false)

Retrieves all child object identities from the database

findAcl(ObjectIdentityInterface $oid, array $sids = array())

Returns the ACL that belongs to the given object identity

findAcls(array $oids, array $sids = array())

Returns the ACLs that belong to the given object identities

createAcl(ObjectIdentityInterface $oid)

Creates a new ACL for the given object identity.

deleteAcl(ObjectIdentityInterface $oid)

Deletes the ACL for a given object identity.

deleteSecurityIdentity(SecurityIdentityInterface $sid)

Deletes the security identity from the database.

propertyChanged(mixed $sender, string $propertyName, mixed $oldValue, mixed $newValue)

Implementation of PropertyChangedListener

updateAcl(MutableAclInterface $acl)

Persists any changes which were made to the ACL, or any associated access control entries.

updateUserSecurityIdentity(UserSecurityIdentity $usid, string $oldUsername)

Updates a user security identity when the user's username changes

Details

at line line 41
__construct(Connection $connection, PermissionGrantingStrategyInterface $permissionGrantingStrategy, array $options, AclCacheInterface $cache = null)

Constructor.

Parameters

Connection $connection
PermissionGrantingStrategyInterface $permissionGrantingStrategy
array $options
AclCacheInterface $cache

in AclProvider at line line 78
array findChildren(ObjectIdentityInterface $parentOid, bool $directChildrenOnly = false)

Retrieves all child object identities from the database

Parameters

ObjectIdentityInterface $parentOid
bool $directChildrenOnly

Return Value

array returns an array of child 'ObjectIdentity's

in AclProvider at line line 93
AclInterface findAcl(ObjectIdentityInterface $oid, array $sids = array())

Returns the ACL that belongs to the given object identity

Parameters

ObjectIdentityInterface $oid
array $sids

Return Value

AclInterface

Exceptions

AclNotFoundException when there is no ACL

at line line 127
SplObjectStorage findAcls(array $oids, array $sids = array())

Returns the ACLs that belong to the given object identities

Parameters

array $oids an array of ObjectIdentityInterface implementations
array $sids an array of SecurityIdentityInterface implementations

Return Value

SplObjectStorage mapping the passed object identities to ACLs

Exceptions

AclNotFoundException when we cannot find an ACL for all identities

at line line 51
MutableAclInterface createAcl(ObjectIdentityInterface $oid)

Creates a new ACL for the given object identity.

Parameters

ObjectIdentityInterface $oid

Return Value

MutableAclInterface

Exceptions

AclAlreadyExistsException when there already is an ACL for the given object identity

at line line 79
deleteAcl(ObjectIdentityInterface $oid)

Deletes the ACL for a given object identity.

This will automatically trigger a delete for any child ACLs. If you don't want child ACLs to be deleted, you will have to set their parent ACL to null.

Parameters

ObjectIdentityInterface $oid

at line line 119
deleteSecurityIdentity(SecurityIdentityInterface $sid)

Deletes the security identity from the database.

ACL entries have the CASCADE option on their foreign key so they will also get deleted

at line line 166
propertyChanged(mixed $sender, string $propertyName, mixed $oldValue, mixed $newValue)

Implementation of PropertyChangedListener

This allows us to keep track of which values have been changed, so we don't have to do a full introspection when ->updateAcl() is called.

Parameters

mixed $sender
string $propertyName
mixed $oldValue
mixed $newValue

Exceptions

InvalidArgumentException

at line line 234
updateAcl(MutableAclInterface $acl)

Persists any changes which were made to the ACL, or any associated access control entries.

Changes to parent ACLs are not persisted.

Parameters

MutableAclInterface $acl

at line line 373
updateUserSecurityIdentity(UserSecurityIdentity $usid, string $oldUsername)

Updates a user security identity when the user's username changes

Parameters

UserSecurityIdentity $usid
string $oldUsername