Mercurial > hg > isophonics-drupal-site
diff core/modules/media/media.install @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
line wrap: on
line diff
--- a/core/modules/media/media.install Mon Apr 23 09:33:26 2018 +0100 +++ b/core/modules/media/media.install Mon Apr 23 09:46:53 2018 +0100 @@ -6,6 +6,7 @@ */ use Drupal\user\RoleInterface; +use Drupal\user\Entity\Role; /** * Implements hook_install(). @@ -77,3 +78,45 @@ return $requirements; } + +/** + * Introduce per-bundle permissions. + */ +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(); + } +}