diff --git a/config/install/user.role.uw_role_site_manager.yml b/config/install/user.role.uw_role_site_manager.yml index 6cbd7ec8fe96971cd71815b74fe0e88570e03580..c658dca7dd6395e799bad17878f6374f9fb93db0 100644 --- a/config/install/user.role.uw_role_site_manager.yml +++ b/config/install/user.role.uw_role_site_manager.yml @@ -71,7 +71,6 @@ permissions: - 'delete any uw_ct_site_footer content' - 'delete any uw_ct_web_page content' - 'delete any uw_news_item content' - - 'delete orphan revisions' - 'delete own uw_ct_blog content' - 'delete own uw_ct_catalog_item content' - 'delete own uw_ct_event content' diff --git a/config/install/user.role.uw_role_site_owner.yml b/config/install/user.role.uw_role_site_owner.yml index 9c4e9499e1bff363ec4cf667045cab81a5d4ed51..ac8e4e830acde20a6b1eb18325c5770daf92332a 100644 --- a/config/install/user.role.uw_role_site_owner.yml +++ b/config/install/user.role.uw_role_site_owner.yml @@ -24,4 +24,3 @@ permissions: - 'can view my_dashboard dashboard' - 'create and edit custom blocks' - 'customize shortcut links' - - 'delete orphan revisions' diff --git a/src/Access/UwNodeAccessCheck.php b/src/Access/UwNodeAccessCheck.php index af8a0b17da5e28f95454ab58baf4bec94ead3d9c..cc0368d8e64db4c093646d4bbbb1924439504b48 100644 --- a/src/Access/UwNodeAccessCheck.php +++ b/src/Access/UwNodeAccessCheck.php @@ -55,6 +55,16 @@ class UwNodeAccessCheck implements AccessInterface { } } + // Role Expire config: admin/config/system/role-expire. + if ($route_name === 'role_expire.config') { + return $account->hasPermission('administer role expire configuration') ? AccessResult::allowed() : AccessResult::forbidden(); + } + + // Dashboard config: admin/config/dashboards/dashboardssettings. + if ($route_name === 'dashboards.dashboards_settings_form') { + return $account->hasPermission('access dashboard config') ? AccessResult::allowed() : AccessResult::forbidden(); + } + // Get the node object, which is in the route match variable. $node = $route_match->getParameter('node'); diff --git a/src/Routing/UwNodeAccessRouteSubscriber.php b/src/Routing/UwNodeAccessRouteSubscriber.php index d9a15672ab2e67c67fcd608b749e977162509755..9fab550c2461e1a84a0c10b1920595d3896c6667 100644 --- a/src/Routing/UwNodeAccessRouteSubscriber.php +++ b/src/Routing/UwNodeAccessRouteSubscriber.php @@ -16,12 +16,16 @@ class UwNodeAccessRouteSubscriber extends RouteSubscriberBase { */ protected function alterRoutes(RouteCollection $collection) { $access_route_names = [ + // Dashboard config: admin/config/dashboards/dashboardssettings. + 'dashboards.dashboards_settings_form', // Node pages (/node/{nid}). 'entity.node.canonical', - // Menu link edit pages. - 'menu_ui.link_edit', // Node delete pages. 'entity.node.delete_form', + // Menu link edit pages. + 'menu_ui.link_edit', + // Role Expire config: admin/config/system/role-expire. + 'role_expire.config', ]; foreach ($access_route_names as $route_name) { if ($route = $collection->get($route_name)) { diff --git a/uw_cfg_common.permissions.yml b/uw_cfg_common.permissions.yml index 35b905c1b759a6d4b603e450698e186d428aa0eb..0657662837eeba26772aa1c73e980fda8fa1bcb4 100644 --- a/uw_cfg_common.permissions.yml +++ b/uw_cfg_common.permissions.yml @@ -1,6 +1,13 @@ 'access content access form': title: 'Access content access form' description: 'Allows access to the content access form.' +'access dashboard config': + title: 'Access dashboard configuration' + description: 'Allows access to admin/config/dashboards/dashboardssettings.' +'administer role expire configuration': + title: 'Administer role expire configuration' + description: 'Allows access to admin/config/system/role-expire.' + restrict access: true 'bypass home page protection': title: 'Bypass home page protection' description: 'Allows taking actions that are not normally allowed for the home page, such as unpublishing.'