diff --git a/src/NodeFormAlter.php b/src/NodeFormAlter.php
index de49dc4..eec9c1c 100644
--- a/src/NodeFormAlter.php
+++ b/src/NodeFormAlter.php
@@ -259,6 +259,9 @@ class NodeFormAlter {
     if ($group->hasPermission('manage group_content_menu', $user)) {
       return TRUE;
     }
+    if ($group->hasPermission('manage group_content_menu menu items', $user)) {
+      return TRUE;
+    }
 
     return FALSE;
   }
diff --git a/src/Plugin/GroupContentMenuPermissionProvider.php b/src/Plugin/GroupContentMenuPermissionProvider.php
index 26f4a9b..00627fa 100644
--- a/src/Plugin/GroupContentMenuPermissionProvider.php
+++ b/src/Plugin/GroupContentMenuPermissionProvider.php
@@ -32,6 +32,10 @@ class GroupContentMenuPermissionProvider extends GroupContentPermissionProvider
       'Manage menus',
       'Create, update and delete menus'
     );
+    $permissions['manage group_content_menu menu items'] = $this->buildPermission(
+      'Manage menu items',
+      'Create, update and delete menu items within group menus'
+    );
 
     return $permissions;
   }
diff --git a/src/Routing/GroupContentMenuRouteProvider.php b/src/Routing/GroupContentMenuRouteProvider.php
index c2b0aee..e59b5ee 100644
--- a/src/Routing/GroupContentMenuRouteProvider.php
+++ b/src/Routing/GroupContentMenuRouteProvider.php
@@ -46,7 +46,7 @@ class GroupContentMenuRouteProvider extends DefaultHtmlRouteProvider {
           '_title' => 'Add menu link',
           '_controller' => sprintf('%s::addLink', GroupContentMenuController::class),
         ])
-        ->setRequirement('_group_permission', implode('+', $this->getCreatePermissions()))
+        ->setRequirement('_group_permission', implode('+', $this->getManageMenuItemsPermissions()))
         ->setRequirement('_group_installed_content', implode('+', $this->getPluginIds()))
         ->setOption('parameters', [
           'group' => ['type' => 'entity:group'],
@@ -73,7 +73,7 @@ class GroupContentMenuRouteProvider extends DefaultHtmlRouteProvider {
           '_title' => 'Edit menu link',
           '_controller' => sprintf('%s::editLink', GroupContentMenuController::class),
         ])
-        ->setRequirement('_group_permission', 'manage group_content_menu')
+        ->setRequirement('_group_permission', implode('+', $this->getManageMenuItemsPermissions()))
         ->setRequirement('_group_installed_content', implode('+', $this->getPluginIds()))
         ->setOption('parameters', [
           'group' => ['type' => 'entity:group'],
@@ -174,7 +174,7 @@ class GroupContentMenuRouteProvider extends DefaultHtmlRouteProvider {
       $route->setRequirements($requirements);
       return $route
         ->setRequirement('_group_menu_owns_content', 'TRUE')
-        ->setRequirement('_group_permission', 'manage group_content_menu')
+        ->setRequirement('_group_permission', implode('+', $this->getManageMenuItemsPermissions()))
         ->setOption('_group_operation_route', TRUE)
         ->setOption('parameters', [
           'group' => ['type' => 'entity:group'],
@@ -203,17 +203,18 @@ class GroupContentMenuRouteProvider extends DefaultHtmlRouteProvider {
   }
 
   /**
-   * Get create permissions.
+   * Get permissions that allow managing menu items.
    *
    * @return array
-   *   List of create permissions.
+   *   List of permissions that allow managing menu items.
    */
-  protected function getCreatePermissions() {
+  protected function getManageMenuItemsPermissions() {
     $permissions = [];
-    foreach (array_keys(GroupContentMenuType::loadMultiple()) as $entity_type_id) {
-      $permissions[] = "create group_content_menu:$entity_type_id content";
-    }
-    return $permissions ?: ['access group content menu overview'];
+
+    $permissions[] = 'manage group_content_menu';
+    $permissions[] = 'manage group_content_menu menu items';
+
+    return $permissions;
   }
 
   /**
