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.