AdminPermissionMap.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Sonata\AdminBundle\Security\Acl\Permission;
  11. use Symfony\Component\Security\Acl\Permission\PermissionMapInterface;
  12. /**
  13. * This is basic permission map complements the masks which have been defined
  14. * on the standard implementation of the MaskBuilder.
  15. *
  16. * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  17. * @author Thomas Rabaix <thomas.rabaix@gmail.com>
  18. */
  19. class AdminPermissionMap implements PermissionMapInterface
  20. {
  21. const PERMISSION_SHOW = 'SHOW';
  22. const PERMISSION_EDIT = 'EDIT';
  23. const PERMISSION_CREATE = 'CREATE';
  24. const PERMISSION_DELETE = 'DELETE';
  25. const PERMISSION_UNDELETE = 'UNDELETE';
  26. const PERMISSION_OPERATOR = 'OPERATOR';
  27. const PERMISSION_MASTER = 'MASTER';
  28. const PERMISSION_OWNER = 'OWNER';
  29. const PERMISSION_LIST = 'LIST';
  30. private $map = array(
  31. self::PERMISSION_LIST => array(
  32. MaskBuilder::MASK_LIST
  33. ),
  34. self::PERMISSION_SHOW => array(
  35. MaskBuilder::MASK_VIEW,
  36. ),
  37. self::PERMISSION_EDIT => array(
  38. MaskBuilder::MASK_EDIT,
  39. ),
  40. self::PERMISSION_CREATE => array(
  41. MaskBuilder::MASK_CREATE,
  42. ),
  43. self::PERMISSION_DELETE => array(
  44. MaskBuilder::MASK_DELETE,
  45. ),
  46. self::PERMISSION_UNDELETE => array(
  47. MaskBuilder::MASK_UNDELETE,
  48. ),
  49. self::PERMISSION_OPERATOR => array(
  50. MaskBuilder::MASK_OPERATOR,
  51. ),
  52. self::PERMISSION_MASTER => array(
  53. MaskBuilder::MASK_MASTER,
  54. ),
  55. self::PERMISSION_OWNER => array(
  56. MaskBuilder::MASK_OWNER,
  57. ),
  58. );
  59. /**
  60. * {@inheritDoc}
  61. */
  62. public function getMasks($permission, $object)
  63. {
  64. if (!isset($this->map[$permission])) {
  65. return null;
  66. }
  67. return $this->map[$permission];
  68. }
  69. /**
  70. * {@inheritDoc}
  71. */
  72. public function contains($permission)
  73. {
  74. return isset($this->map[$permission]);
  75. }
  76. }