diff --git a/core/modules/media/media.module b/core/modules/media/media.module index 420e81e4fd..d3575457cc 100644 --- a/core/modules/media/media.module +++ b/core/modules/media/media.module @@ -210,9 +210,21 @@ function media_preprocess_media_reference_help(&$variables) { // Use the user-defined label for the field to indicate that the form allows // reusing existing media. $variables['label'] = $element['#original_label']; + if (!empty($element[0]['target_id']['#selection_settings']['target_bundles'])) { - $variables['types'] = implode(", ", $element[0]['target_id']['#selection_settings']['target_bundles']); - $variables['media_add_page'] = Url::fromRoute('entity.media.add_page')->toString(); - $variables['media_list'] = Url::fromRoute('entity.media.collection')->toString(); + $create_access = FALSE; + $bundles = $element[0]['target_id']['#selection_settings']['target_bundles']; + $variables['types'] = implode(", ", $bundles); + foreach ($bundles as $bundle) { + if (\Drupal::entityTypeManager()->getAccessControlHandler('media')->createAccess($bundle, \Drupal::currentUser())) { + $create_access = TRUE; + } + } + if ($create_access === TRUE) { + $variables['media_add_page'] = Url::fromRoute('entity.media.add_page')->toString(); + } + if (\Drupal::currentUser()->hasPermission('access media overview')) { + $variables['media_list'] = Url::fromRoute('entity.media.collection')->toString(); + } } } diff --git a/core/modules/media/templates/media-reference-help.html.twig b/core/modules/media/templates/media-reference-help.html.twig index d99ca4032c..1b23f5f234 100644 --- a/core/modules/media/templates/media-reference-help.html.twig +++ b/core/modules/media/templates/media-reference-help.html.twig @@ -10,14 +10,17 @@ #}