class DeleteMenuAccessCheck

Access check for menu delete routes.

Hierarchy

Expanded class hierarchy of DeleteMenuAccessCheck

1 string reference to 'DeleteMenuAccessCheck'
menu.services.yml in drupal/core/modules/menu/menu.services.yml
drupal/core/modules/menu/menu.services.yml
1 service uses DeleteMenuAccessCheck

File

drupal/core/modules/menu/lib/Drupal/menu/Access/DeleteMenuAccessCheck.php, line 17
Contains \Drupal\menu\Access\DeleteMenuAccessCheck.

Namespace

Drupal\menu\Access
View source
class DeleteMenuAccessCheck implements AccessCheckInterface {

  /**
   * {@inheritdoc}
   */
  public function applies(Route $route) {
    return array_key_exists('_access_menu_delete_menu', $route
      ->getRequirements());
  }

  /**
   * {@inheritdoc}
   */
  public function access(Route $route, Request $request) {
    if (user_access('administer menu') && ($menu = $request->attributes
      ->get('menu'))) {

      // System-defined menus may not be deleted.
      $system_menus = menu_list_system_menus();
      return !isset($system_menus[$menu
        ->id()]);
    }
    return FALSE;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AccessCheckInterface::ALLOW constant Grant access.
AccessCheckInterface::DENY constant Deny access.
AccessCheckInterface::KILL constant Block access.
DeleteMenuAccessCheck::access public function Checks for access to route. Overrides AccessCheckInterface::access
DeleteMenuAccessCheck::applies public function Declares whether the access check applies to a specific route or not. Overrides AccessCheckInterface::applies