From 3840daa961792dfe9a48e80a068c9a9391554cf6 Mon Sep 17 00:00:00 2001 From: Anatol Sialitski Date: Thu, 26 Sep 2024 09:30:35 +0200 Subject: [PATCH] Mount widget interfaces to admin tool #10701 --- .../enonic/xp/admin/impl/portal/WidgetApiHandler.java | 11 ++++------- .../impl/tool/XmlAdminToolDescriptorParserTest.java | 2 +- .../XmlAdminToolDescriptorParserTest-interfaces.xml | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/modules/admin/admin-impl/src/main/java/com/enonic/xp/admin/impl/portal/WidgetApiHandler.java b/modules/admin/admin-impl/src/main/java/com/enonic/xp/admin/impl/portal/WidgetApiHandler.java index 2423af90cad..3d4c6152027 100644 --- a/modules/admin/admin-impl/src/main/java/com/enonic/xp/admin/impl/portal/WidgetApiHandler.java +++ b/modules/admin/admin-impl/src/main/java/com/enonic/xp/admin/impl/portal/WidgetApiHandler.java @@ -96,14 +96,11 @@ private void verifyMounts( final WidgetDescriptor widgetDescriptor, final WebReq final DescriptorKey toolDescriptorKey = DescriptorKey.from( resolveApplicationKey( toolMatcher.group( "appKey" ) ), toolMatcher.group( "toolName" ) ); final AdminToolDescriptor adminToolDescriptor = adminToolDescriptorService.getByKey( toolDescriptorKey ); - if ( adminToolDescriptor != null && !adminToolDescriptor.getInterfaces().isEmpty() ) + if ( adminToolDescriptor != null && !adminToolDescriptor.getInterfaces().isEmpty() && + widgetDescriptor.getInterfaces().stream().noneMatch( adminToolDescriptor::hasInterface ) ) { - if ( widgetDescriptor.getInterfaces().stream().noneMatch( adminToolDescriptor::hasInterface ) ) - { - throw WebException.notFound( - String.format( "Widget [%s] is not mounted to admin tool [%s]", widgetDescriptor.getKey(), - toolDescriptorKey ) ); - } + throw WebException.notFound( + String.format( "Widget [%s] is not mounted to admin tool [%s]", widgetDescriptor.getKey(), toolDescriptorKey ) ); } } } diff --git a/modules/admin/admin-impl/src/test/java/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest.java b/modules/admin/admin-impl/src/test/java/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest.java index 4be917ef82f..1fc9ab3efee 100644 --- a/modules/admin/admin-impl/src/test/java/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest.java +++ b/modules/admin/admin-impl/src/test/java/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest.java @@ -89,7 +89,7 @@ public void testParseWithInterfaces() assertEquals( 2, toolDescriptor.getInterfaces().size() ); final Set interfaces = toolDescriptor.getInterfaces(); - assertTrue( interfaces.contains( "generic" ) ); + assertTrue( interfaces.contains( "admin.dashboard.content-studio" ) ); assertTrue( interfaces.contains( "admin.dashboard" ) ); } diff --git a/modules/admin/admin-impl/src/test/resources/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest-interfaces.xml b/modules/admin/admin-impl/src/test/resources/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest-interfaces.xml index 37030f57492..dc0799390f9 100644 --- a/modules/admin/admin-impl/src/test/resources/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest-interfaces.xml +++ b/modules/admin/admin-impl/src/test/resources/com/enonic/xp/admin/impl/tool/XmlAdminToolDescriptorParserTest-interfaces.xml @@ -6,7 +6,7 @@ role:system.admin - generic + admin.dashboard.content-studio admin.dashboard