vendor/symfony/src/Symfony/Component/Security/Acl/Model/MutableAclProviderInterface.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     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 AclInterface
       
    28      */
       
    29     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      * @return void
       
    39      */
       
    40     function deleteAcl(ObjectIdentityInterface $oid);
       
    41 
       
    42     /**
       
    43      * Persists any changes which were made to the ACL, or any associated
       
    44      * access control entries.
       
    45      *
       
    46      * Changes to parent ACLs are not persisted.
       
    47      *
       
    48      * @param MutableAclInterface $acl
       
    49      * @return void
       
    50      */
       
    51     function updateAcl(MutableAclInterface $acl);
       
    52 }