From e46cfdec3c9662df7d831592dad2defb137718e6 Mon Sep 17 00:00:00 2001
From: Aaron Bauman <aaron@messageagency.com>
Date: Tue, 18 Mar 2025 14:13:02 -0400
Subject: [PATCH] Issue #3269666 by altcom_neil, gcb: Salesforce Mapped Objects
 local task not appearing on Webform Submission pages

---
 .../src/Controller/MappedObjectController.php          | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php b/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php
index f3a7ddc4..687e452b 100644
--- a/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php
+++ b/modules/salesforce_mapping_ui/src/Controller/MappedObjectController.php
@@ -44,8 +44,14 @@ class MappedObjectController extends ControllerBase {
       return AccessResult::forbidden();
     }
 
-    // There must be a better way to get the entity from a route match.
-    $param = current($this->route->getParameters()->all());
+    $param = null;
+    $parameter_info = $this->route->getRouteObject()->getOption('parameters');
+    foreach ($parameter_info as $name => $options) {
+      if (isset($options['type']) && str_starts_with($options['type'], 'entity:')) {
+        $param = $this->route->getParameter($name);
+        continue 1;
+      }
+    }
     if (!is_object($param)) {
       return AccessResult::forbidden();
     }
-- 
GitLab