vendor/symfony/src/Symfony/Component/Security/Acl/Permission/BasicPermissionMap.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\Permission;
       
    13 
       
    14 /**
       
    15  * This is basic permission map complements the masks which have been defined
       
    16  * on the standard implementation of the MaskBuilder.
       
    17  *
       
    18  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
       
    19  */
       
    20 class BasicPermissionMap implements PermissionMapInterface
       
    21 {
       
    22     const PERMISSION_VIEW        = 'VIEW';
       
    23     const PERMISSION_EDIT        = 'EDIT';
       
    24     const PERMISSION_CREATE      = 'CREATE';
       
    25     const PERMISSION_DELETE      = 'DELETE';
       
    26     const PERMISSION_UNDELETE    = 'UNDELETE';
       
    27     const PERMISSION_OPERATOR    = 'OPERATOR';
       
    28     const PERMISSION_MASTER      = 'MASTER';
       
    29     const PERMISSION_OWNER       = 'OWNER';
       
    30 
       
    31     private $map = array(
       
    32         self::PERMISSION_VIEW => array(
       
    33             MaskBuilder::MASK_VIEW,
       
    34             MaskBuilder::MASK_EDIT,
       
    35             MaskBuilder::MASK_OPERATOR,
       
    36             MaskBuilder::MASK_MASTER,
       
    37             MaskBuilder::MASK_OWNER,
       
    38         ),
       
    39 
       
    40         self::PERMISSION_EDIT => array(
       
    41             MaskBuilder::MASK_EDIT,
       
    42             MaskBuilder::MASK_OPERATOR,
       
    43             MaskBuilder::MASK_MASTER,
       
    44             MaskBuilder::MASK_OWNER,
       
    45         ),
       
    46 
       
    47         self::PERMISSION_CREATE => array(
       
    48             MaskBuilder::MASK_CREATE,
       
    49             MaskBuilder::MASK_OPERATOR,
       
    50             MaskBuilder::MASK_MASTER,
       
    51             MaskBuilder::MASK_OWNER,
       
    52         ),
       
    53 
       
    54         self::PERMISSION_DELETE => array(
       
    55             MaskBuilder::MASK_DELETE,
       
    56             MaskBuilder::MASK_OPERATOR,
       
    57             MaskBuilder::MASK_MASTER,
       
    58             MaskBuilder::MASK_OWNER,
       
    59         ),
       
    60 
       
    61         self::PERMISSION_UNDELETE => array(
       
    62             MaskBuilder::MASK_UNDELETE,
       
    63             MaskBuilder::MASK_OPERATOR,
       
    64             MaskBuilder::MASK_MASTER,
       
    65             MaskBuilder::MASK_OWNER,
       
    66         ),
       
    67 
       
    68         self::PERMISSION_OPERATOR => array(
       
    69             MaskBuilder::MASK_OPERATOR,
       
    70             MaskBuilder::MASK_MASTER,
       
    71             MaskBuilder::MASK_OWNER,
       
    72         ),
       
    73 
       
    74         self::PERMISSION_MASTER => array(
       
    75             MaskBuilder::MASK_MASTER,
       
    76             MaskBuilder::MASK_OWNER,
       
    77         ),
       
    78 
       
    79         self::PERMISSION_OWNER => array(
       
    80             MaskBuilder::MASK_OWNER,
       
    81         ),
       
    82     );
       
    83 
       
    84     /**
       
    85      * {@inheritDoc}
       
    86      */
       
    87     public function getMasks($permission, $object)
       
    88     {
       
    89         if (!isset($this->map[$permission])) {
       
    90             return null;
       
    91         }
       
    92 
       
    93         return $this->map[$permission];
       
    94     }
       
    95 
       
    96     /**
       
    97      * {@inheritDoc}
       
    98      */
       
    99     public function contains($permission)
       
   100     {
       
   101         return isset($this->map[$permission]);
       
   102     }
       
   103 }