Loading modules/search_api_solr_admin/search_api_solr_admin.routing.yml +1 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ search_api_solr_admin.solr_upload_configset_form: _title: 'Upload Configset' requirements: _search_api_solr_admin_cloud_access_check: 'TRUE' _search_api_solr_admin_trusted_context_supported_access_check: 'TRUE' _permission: 'execute solr admin task' search_api_solr_admin.solr_reload_collection_form: Loading modules/search_api_solr_admin/search_api_solr_admin.services.yml +6 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,12 @@ services: tags: - { name: access_check, applies_to: _search_api_solr_admin_cloud_access_check } access_check.search_api_solr_admin_trusted_context_supported: class: Drupal\search_api_solr_admin\Access\SolrAdminTrustedContextSupportedAccessCheck arguments: ['@current_user'] tags: - { name: access_check, applies_to: _search_api_solr_admin_trusted_context_supported_access_check } search_api_solr_admin.command_helper: class: Drupal\search_api_solr_admin\Utility\SolrAdminCommandHelper arguments: ['@entity_type.manager', '@module_handler', '@event_dispatcher', '@extension.list.module', '@file_system', '@messenger'] modules/search_api_solr_admin/src/Access/SolrAdminTrustedContextSupportedAccessCheck.php 0 → 100644 +36 −0 Original line number Diff line number Diff line <?php namespace Drupal\search_api_solr_admin\Access; use Drupal\search_api_solr\SolrBackendInterface; use Drupal\search_api\ServerInterface; use Drupal\Core\Access\AccessResult; use Drupal\Core\Routing\Access\AccessInterface; use Drupal\Core\Session\AccountInterface; /** * Provides an access check for the "Solr Admin" routes for Solr Cloud. */ class SolrAdminTrustedContextSupportedAccessCheck implements AccessInterface { /** * A custom access check. * * @param \Drupal\Core\Session\AccountInterface $account * Run access checks for this account. * @param \Drupal\search_api\ServerInterface|null $search_api_server * (optional) The Search API server entity. */ public function access(AccountInterface $account, ServerInterface $search_api_server = NULL) { if ($search_api_server) { $backend = $search_api_server->getBackend(); if ($backend instanceof SolrBackendInterface) { if ($backend->getSolrConnector()->isTrustedContextSupported()) { return AccessResult::allowed(); } } } return AccessResult::forbidden(); } } src/Plugin/SolrConnector/BasicAuthSolrCloudConnector.php +7 −0 Original line number Diff line number Diff line Loading @@ -17,4 +17,11 @@ class BasicAuthSolrCloudConnector extends StandardSolrCloudConnector { use BasicAuthTrait; /** * {@inheritdoc} */ public function isTrustedContextSupported() { return TRUE; } } src/SolrConnector/SolrConnectorPluginBase.php +7 −0 Original line number Diff line number Diff line Loading @@ -374,6 +374,13 @@ abstract class SolrConnectorPluginBase extends ConfigurablePluginBase implements return FALSE; } /** * {@inheritdoc} */ public function isTrustedContextSupported() { return FALSE; } /** * Returns the Solr server URI. */ Loading Loading
modules/search_api_solr_admin/search_api_solr_admin.routing.yml +1 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ search_api_solr_admin.solr_upload_configset_form: _title: 'Upload Configset' requirements: _search_api_solr_admin_cloud_access_check: 'TRUE' _search_api_solr_admin_trusted_context_supported_access_check: 'TRUE' _permission: 'execute solr admin task' search_api_solr_admin.solr_reload_collection_form: Loading
modules/search_api_solr_admin/search_api_solr_admin.services.yml +6 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,12 @@ services: tags: - { name: access_check, applies_to: _search_api_solr_admin_cloud_access_check } access_check.search_api_solr_admin_trusted_context_supported: class: Drupal\search_api_solr_admin\Access\SolrAdminTrustedContextSupportedAccessCheck arguments: ['@current_user'] tags: - { name: access_check, applies_to: _search_api_solr_admin_trusted_context_supported_access_check } search_api_solr_admin.command_helper: class: Drupal\search_api_solr_admin\Utility\SolrAdminCommandHelper arguments: ['@entity_type.manager', '@module_handler', '@event_dispatcher', '@extension.list.module', '@file_system', '@messenger']
modules/search_api_solr_admin/src/Access/SolrAdminTrustedContextSupportedAccessCheck.php 0 → 100644 +36 −0 Original line number Diff line number Diff line <?php namespace Drupal\search_api_solr_admin\Access; use Drupal\search_api_solr\SolrBackendInterface; use Drupal\search_api\ServerInterface; use Drupal\Core\Access\AccessResult; use Drupal\Core\Routing\Access\AccessInterface; use Drupal\Core\Session\AccountInterface; /** * Provides an access check for the "Solr Admin" routes for Solr Cloud. */ class SolrAdminTrustedContextSupportedAccessCheck implements AccessInterface { /** * A custom access check. * * @param \Drupal\Core\Session\AccountInterface $account * Run access checks for this account. * @param \Drupal\search_api\ServerInterface|null $search_api_server * (optional) The Search API server entity. */ public function access(AccountInterface $account, ServerInterface $search_api_server = NULL) { if ($search_api_server) { $backend = $search_api_server->getBackend(); if ($backend instanceof SolrBackendInterface) { if ($backend->getSolrConnector()->isTrustedContextSupported()) { return AccessResult::allowed(); } } } return AccessResult::forbidden(); } }
src/Plugin/SolrConnector/BasicAuthSolrCloudConnector.php +7 −0 Original line number Diff line number Diff line Loading @@ -17,4 +17,11 @@ class BasicAuthSolrCloudConnector extends StandardSolrCloudConnector { use BasicAuthTrait; /** * {@inheritdoc} */ public function isTrustedContextSupported() { return TRUE; } }
src/SolrConnector/SolrConnectorPluginBase.php +7 −0 Original line number Diff line number Diff line Loading @@ -374,6 +374,13 @@ abstract class SolrConnectorPluginBase extends ConfigurablePluginBase implements return FALSE; } /** * {@inheritdoc} */ public function isTrustedContextSupported() { return FALSE; } /** * Returns the Solr server URI. */ Loading