drupal 9 custom access checking for routes
<?php namespace Drupal\mymod\Access; use Drupal\Core\Routing\Access\AccessInterface; use Drupal\Core\Access\AccessResult; use Drupal\mymod\StoreService; class CardEditAccessChecker implements AccessInterface { // injected StoreService private $ss = NULL; public function __construct(StoreService $ss) { $this->ss = $ss; } public function access($product_id) { // marketplace manager can edit all... if ($this->ss->isMarketPlaceManager()) { return AccessResult::allowed(); } // product owner can edit... if ($this->ss->ownsProduct($product_id)) { return AccessResult::allowed(); } return AccessResult::forbidden(); } }