From a3e56b175293db067054b646bed4eb6f7f412ea9 Mon Sep 17 00:00:00 2001
From: Gabor Hojtsy <gabor@hojtsy.hu>
Date: Tue, 30 May 2017 15:57:14 +0200
Subject: [PATCH] Issue #2832574 by marcoscano, dawehner, hansfn: Grant "view
 media" permission by default to all users

---
 core/modules/media/media.install                  |  8 ++++++++
 .../tests/src/Functional/MediaAccessTest.php      |  1 +
 .../tests/src/Functional/MediaCacheTagsTest.php   | 15 ---------------
 3 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/core/modules/media/media.install b/core/modules/media/media.install
index b16b348cd413..87aeb360a0c2 100644
--- a/core/modules/media/media.install
+++ b/core/modules/media/media.install
@@ -5,6 +5,8 @@
  * Install, uninstall and update hooks for Media module.
  */
 
+use \Drupal\user\RoleInterface;
+
 /**
  * Implements hook_install().
  */
@@ -17,6 +19,12 @@ function media_install() {
   foreach ($files as $file) {
     file_unmanaged_copy($file->uri, $destination, FILE_EXISTS_ERROR);
   }
+
+  // Grant the "view media" permission to all users by default.
+  if (\Drupal::moduleHandler()->moduleExists('user')) {
+    user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, ['view media']);
+    user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, ['view media']);
+  }
 }
 
 /**
diff --git a/core/modules/media/tests/src/Functional/MediaAccessTest.php b/core/modules/media/tests/src/Functional/MediaAccessTest.php
index 090beacfd1ce..2ccf0b5cc289 100644
--- a/core/modules/media/tests/src/Functional/MediaAccessTest.php
+++ b/core/modules/media/tests/src/Functional/MediaAccessTest.php
@@ -56,6 +56,7 @@ public function testMediaAccess() {
     $role = Role::load(RoleInterface::AUTHENTICATED_ID);
 
     // Test 'view media' permission.
+    user_role_revoke_permissions($role->id(), ['view media']);
     $this->drupalGet('media/' . $media->id());
     $this->assertCacheContext('user.permissions');
     $assert_session->statusCodeEquals(403);
diff --git a/core/modules/media/tests/src/Functional/MediaCacheTagsTest.php b/core/modules/media/tests/src/Functional/MediaCacheTagsTest.php
index cdbfc292a1ff..8da814b9d3a1 100644
--- a/core/modules/media/tests/src/Functional/MediaCacheTagsTest.php
+++ b/core/modules/media/tests/src/Functional/MediaCacheTagsTest.php
@@ -5,8 +5,6 @@
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\media\Entity\Media;
 use Drupal\system\Tests\Entity\EntityWithUriCacheTagsTestBase;
-use Drupal\user\Entity\Role;
-use Drupal\user\RoleInterface;
 
 /**
  * Tests the media entity's cache tags.
@@ -25,19 +23,6 @@ class MediaCacheTagsTest extends EntityWithUriCacheTagsTestBase {
     'media_test_source',
   ];
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    // Give anonymous users permission to view media, so that we can
-    // verify the cache tags of cached versions of media items.
-    $user_role = Role::load(RoleInterface::ANONYMOUS_ID);
-    $user_role->grantPermission('view media');
-    $user_role->save();
-  }
-
   /**
    * {@inheritdoc}
    */
-- 
GitLab