diff --git a/uw_cfg_common.install b/uw_cfg_common.install index be15d0dd268316aee15f466738f83809e5ec1575..2e2bd79114b8c290d765fba42b80046e343b7e3d 100644 --- a/uw_cfg_common.install +++ b/uw_cfg_common.install @@ -9,6 +9,7 @@ use Drupal\taxonomy\Entity\Term; use Drupal\node\Entity\Node; use Drupal\uw_cfg_common\UwPermissions\UwPermissions; use Drupal\user\Entity\Role; +use Drupal\Core\Config\FileStorage; /** * Implements hook_install(). @@ -374,3 +375,62 @@ function uw_cfg_common_update_8102() { $role_object->save(); } } + +/** + * Load config and assigns permissions to roles. + * + * Load quick_node_clone config. + */ +function uw_cfg_common_update_8103() { + + // Load config that is not being set properly by config distro update. + $config_path = drupal_get_path('module', 'uw_cfg_common') . '/config/install'; + $source = new FileStorage($config_path); + $config_storage = \Drupal::service('config.storage'); + $config_storage->write('quick_node_clone.settings', $source->read('quick_node_clone.settings')); + + // List of permissions needed to be applied to roles. + $permissions = [ + 'clone uw_ct_blog content', + 'clone uw_ct_catalog_item content', + 'clone uw_ct_contact content', + 'clone uw_ct_event content', + 'clone uw_ct_news_item content', + 'clone uw_ct_profile content', + 'clone uw_ct_sidebar content', + 'clone uw_ct_web_page content', + ]; + + // Roles that require updated permissions. + $role_ids = [ + 'uw_role_site_manager', + 'uw_role_content_editor', + 'uw_role_content_author', + ]; + + $roles = Role::loadMultiple($role_ids); + + // Grant all all roles. + foreach ($permissions as $permission) { + $roles['uw_role_site_manager']->grantPermission($permission); + $roles['uw_role_content_editor']->grantPermission($permission); + $roles['uw_role_content_author']->grantPermission($permission); + } + + // Save role with new permissions. + $roles['uw_role_site_manager']->save(); + $roles['uw_role_content_editor']->save(); + $roles['uw_role_content_author']->save(); + +} + +/** + * Implements hook_update_dependencies(). + */ +function uw_cfg_common_update_dependencies() { + $dependencies['uw_cfg_common'][8103] = [ + 'uw_sites_all' => 8105, + ]; + + return $dependencies; +}