diff --git a/modules/acquia_cms_audio/acquia_cms_audio.install b/modules/acquia_cms_audio/acquia_cms_audio.install index 6bca52e41..a2e0d9b1d 100644 --- a/modules/acquia_cms_audio/acquia_cms_audio.install +++ b/modules/acquia_cms_audio/acquia_cms_audio.install @@ -12,36 +12,10 @@ use Drupal\editor\Entity\Editor; */ function acquia_cms_audio_install($is_syncing) { if (!$is_syncing) { - $roles = \Drupal::entityTypeManager()->getStorage('user_role')->loadMultiple([ - 'content_author', - 'content_editor', - ]); - foreach ($roles as $role) { - switch ($role->id()) { - case 'content_author': - foreach ([ - 'create audio media', - 'edit own audio media', - 'delete own audio media', - ] as $permission) { - $role->grantPermission($permission); - } - $role->trustData()->save(); - break; - - case 'content_editor': - foreach (['edit any audio media', 'delete any audio media'] as $permission) { - $role->grantPermission($permission); - } - $role->trustData()->save(); - break; - } - } - - // Update the filtered_html & full_html configurations - if (\Drupal::moduleHandler()->moduleExists('editor')) { - _acquia_cms_audio_editor_config_rewrite(); - } + $class_resolver = \Drupal::service('class_resolver'); + $class_resolver->getInstanceFromDefinition(PermissionManager::class) + ->grantPermissionToRoles(); + _acquia_cms_audio_editor_config_rewrite(); } } @@ -49,6 +23,9 @@ function acquia_cms_audio_install($is_syncing) { * Function to rewrite filtered_html & full_html configurations. */ function _acquia_cms_audio_editor_config_rewrite(): void { + if(!\Drupal::moduleHandler()->moduleExists('editor')) { + return; + } $editors = [ "filtered_html", "full_html", diff --git a/modules/acquia_cms_audio/acquia_cms_audio.module b/modules/acquia_cms_audio/acquia_cms_audio.module index 43939c659..c3a317452 100644 --- a/modules/acquia_cms_audio/acquia_cms_audio.module +++ b/modules/acquia_cms_audio/acquia_cms_audio.module @@ -5,31 +5,16 @@ * Install, update and uninstall functions for the acquia_cms_audio module. */ -use Drupal\Core\Entity\EntityInterface; +use Drupal\acquia_cms_audio\EntityOperations\PermissionManager; +use Drupal\user\RoleInterface; /** - * Implements hook_content_model_role_presave_alter(). + * Implements hook_entity_insert(). */ -function acquia_cms_audio_entity_insert(EntityInterface $entity) { - switch ($entity->id()) { - case 'content_author': - $role = \Drupal::entityTypeManager()->getStorage('user_role')->load($entity->id()); - foreach ([ - 'create audio media', - 'edit own audio media', - 'delete own audio media', - ] as $permission) { - $role->grantPermission($permission); - } - $role->trustData()->save(); - break; - - case 'content_editor': - $role = \Drupal::entityTypeManager()->getStorage('user_role')->load($entity->id()); - foreach (['edit any audio media', 'delete any audio media'] as $permission) { - $role->grantPermission($permission); - } - $role->trustData()->save(); - break; +function acquia_cms_audio_user_role_insert(RoleInterface $role) { + if(!$role->isSyncing()) { + $class_resolver = \Drupal::service('class_resolver'); + $class_resolver->getInstanceFromDefinition(PermissionManager::class) + ->grantPermissionToRoles([$role->id()]); } }