function media_update_8500

Introduce per-bundle permissions.

File

core/modules/media/media.install, line 181

Code

function media_update_8500() {
  $media_types = \Drupal::entityQuery('media_type')->execute();
  /** @var \Drupal\user\RoleInterface $role */
  foreach (Role::loadMultiple() as $role) {
    if ($role->hasPermission('update media')) {
      foreach ($media_types as $media_type) {
        $role->grantPermission("edit own {$media_type} media");
      }
    }
    if ($role->hasPermission('update any media')) {
      foreach ($media_types as $media_type) {
        $role->grantPermission("edit any {$media_type} media");
      }
    }
    if ($role->hasPermission('delete media')) {
      foreach ($media_types as $media_type) {
        $role->grantPermission("delete own {$media_type} media");
      }
    }
    if ($role->hasPermission('delete any media')) {
      foreach ($media_types as $media_type) {
        $role->grantPermission("delete any {$media_type} media");
      }
    }
    if ($role->hasPermission('create media')) {
      foreach ($media_types as $media_type) {
        $role->grantPermission("create {$media_type} media");
      }
    }
    $role->save();
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.