1: <?php
2:
3: /*
4: * This file is part of the Symfony package.
5: *
6: * (c) Fabien Potencier <fabien@symfony.com>
7: *
8: * For the full copyright and license information, please view the LICENSE
9: * file that was distributed with this source code.
10: */
11:
12: namespace Symfony\Component\Security\Acl\Model;
13:
14: /**
15: * Provides support for creating and storing ACL instances.
16: *
17: * @author Johannes M. Schmitt <schmittjoh@gmail.com>
18: */
19: interface MutableAclProviderInterface extends AclProviderInterface
20: {
21: /**
22: * Creates a new ACL for the given object identity.
23: *
24: * @throws AclAlreadyExistsException when there already is an ACL for the given
25: * object identity
26: * @param ObjectIdentityInterface $oid
27: * @return MutableAclInterface
28: */
29: public function createAcl(ObjectIdentityInterface $oid);
30:
31: /**
32: * Deletes the ACL for a given object identity.
33: *
34: * This will automatically trigger a delete for any child ACLs. If you don't
35: * want child ACLs to be deleted, you will have to set their parent ACL to null.
36: *
37: * @param ObjectIdentityInterface $oid
38: */
39: public function deleteAcl(ObjectIdentityInterface $oid);
40:
41: /**
42: * Persists any changes which were made to the ACL, or any associated
43: * access control entries.
44: *
45: * Changes to parent ACLs are not persisted.
46: *
47: * @param MutableAclInterface $acl
48: */
49: public function updateAcl(MutableAclInterface $acl);
50: }
51: