diff -r 000000000000 -r 7f95f8617b0b vendor/symfony/src/Symfony/Component/Security/Acl/Permission/BasicPermissionMap.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/symfony/src/Symfony/Component/Security/Acl/Permission/BasicPermissionMap.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Security\Acl\Permission; + +/** + * This is basic permission map complements the masks which have been defined + * on the standard implementation of the MaskBuilder. + * + * @author Johannes M. Schmitt + */ +class BasicPermissionMap implements PermissionMapInterface +{ + const PERMISSION_VIEW = 'VIEW'; + const PERMISSION_EDIT = 'EDIT'; + const PERMISSION_CREATE = 'CREATE'; + const PERMISSION_DELETE = 'DELETE'; + const PERMISSION_UNDELETE = 'UNDELETE'; + const PERMISSION_OPERATOR = 'OPERATOR'; + const PERMISSION_MASTER = 'MASTER'; + const PERMISSION_OWNER = 'OWNER'; + + private $map = array( + self::PERMISSION_VIEW => array( + MaskBuilder::MASK_VIEW, + MaskBuilder::MASK_EDIT, + MaskBuilder::MASK_OPERATOR, + MaskBuilder::MASK_MASTER, + MaskBuilder::MASK_OWNER, + ), + + self::PERMISSION_EDIT => array( + MaskBuilder::MASK_EDIT, + MaskBuilder::MASK_OPERATOR, + MaskBuilder::MASK_MASTER, + MaskBuilder::MASK_OWNER, + ), + + self::PERMISSION_CREATE => array( + MaskBuilder::MASK_CREATE, + MaskBuilder::MASK_OPERATOR, + MaskBuilder::MASK_MASTER, + MaskBuilder::MASK_OWNER, + ), + + self::PERMISSION_DELETE => array( + MaskBuilder::MASK_DELETE, + MaskBuilder::MASK_OPERATOR, + MaskBuilder::MASK_MASTER, + MaskBuilder::MASK_OWNER, + ), + + self::PERMISSION_UNDELETE => array( + MaskBuilder::MASK_UNDELETE, + MaskBuilder::MASK_OPERATOR, + MaskBuilder::MASK_MASTER, + MaskBuilder::MASK_OWNER, + ), + + self::PERMISSION_OPERATOR => array( + MaskBuilder::MASK_OPERATOR, + MaskBuilder::MASK_MASTER, + MaskBuilder::MASK_OWNER, + ), + + self::PERMISSION_MASTER => array( + MaskBuilder::MASK_MASTER, + MaskBuilder::MASK_OWNER, + ), + + self::PERMISSION_OWNER => array( + MaskBuilder::MASK_OWNER, + ), + ); + + /** + * {@inheritDoc} + */ + public function getMasks($permission, $object) + { + if (!isset($this->map[$permission])) { + return null; + } + + return $this->map[$permission]; + } + + /** + * {@inheritDoc} + */ + public function contains($permission) + { + return isset($this->map[$permission]); + } +}