Access.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. /**
  3. * @package Grav\Common\User
  4. *
  5. * @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
  6. * @license MIT License; see LICENSE file for details.
  7. */
  8. namespace Grav\Common\User;
  9. use function is_bool;
  10. /**
  11. * Class Access
  12. * @package Grav\Common\User
  13. */
  14. class Access extends \Grav\Framework\Acl\Access
  15. {
  16. /** @var array[] */
  17. private $aliases = [
  18. 'admin.configuration.system' => ['admin.configuration_system'],
  19. 'admin.configuration.site' => ['admin.configuration_site', 'admin.settings'],
  20. 'admin.configuration.media' => ['admin.configuration_media'],
  21. 'admin.configuration.info' => ['admin.configuration_info'],
  22. ];
  23. /**
  24. * @param string $action
  25. * @return bool|null
  26. */
  27. public function get(string $action)
  28. {
  29. $result = parent::get($action);
  30. if (is_bool($result)) {
  31. return $result;
  32. }
  33. // Get access value.
  34. if (isset($this->aliases[$action])) {
  35. $aliases = $this->aliases[$action];
  36. foreach ($aliases as $alias) {
  37. $result = parent::get($alias);
  38. if (is_bool($result)) {
  39. return $result;
  40. }
  41. }
  42. }
  43. return null;
  44. }
  45. }