class ViewModeAccessCheck

Allows access to routes to be controlled by an '_access' boolean parameter.

Hierarchy

Expanded class hierarchy of ViewModeAccessCheck

1 string reference to 'ViewModeAccessCheck'
field_ui.services.yml in drupal/core/modules/field_ui/field_ui.services.yml
drupal/core/modules/field_ui/field_ui.services.yml
1 service uses ViewModeAccessCheck

File

drupal/core/modules/field_ui/lib/Drupal/field_ui/Access/ViewModeAccessCheck.php, line 17
Contains \Drupal\field_ui\Access\ViewModeAccessCheck.

Namespace

Drupal\field_ui\Access
View source
class ViewModeAccessCheck implements AccessCheckInterface {

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

  /**
   * {@inheritdoc}
   */
  public function access(Route $route, Request $request) {
    if ($entity_type = $request->attributes
      ->get('entity_type')) {
      $bundle = $request->attributes
        ->get('bundle');
      $view_mode = $request->attributes
        ->get('view_mode');
      $view_mode_settings = field_view_mode_settings($entity_type, $bundle);
      $visibility = $view_mode == 'default' || !empty($view_mode_settings[$view_mode]['status']);
      if ($visibility) {
        $permission = $route
          ->getRequirement('_field_ui_view_mode_access');
        return user_access($permission);
      }
    }
  }

}

Members

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