- $bao = CRM_Core_DAO_AllCoreTables::getBAOClassName(CRM_Core_DAO_AllCoreTables::getClassForTable($table));
- return $bao::checkAccess(CRM_Core_Permission::EDIT, ['id' => $eid], $userID);
+ $targetEntity = CRM_Core_DAO_AllCoreTables::getEntityNameForTable($table);
+ if ($targetEntity === NULL) {
+ throw new \API_Exception(sprintf('Cannot resolve permissions for dynamic foreign key in "%s". Invalid table reference "%s".',
+ static::getTableName(), $table));
+ }
+ return \Civi\Api4\Utils\CoreUtil::checkAccessDelegated($targetEntity, 'update', ['id' => $eid], $userID);