From 4ba5a33bd8cf3519080415f2f2867327cf30e0bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20D=C3=ADaz?= Date: Fri, 24 Oct 2025 13:40:48 +0200 Subject: [PATCH 1/2] LPD-69423 Handle ObjectEntryFolder and resolve missing DepotEntry in InfoItemUtil#getGroupId --- .../initializer/internal/util/InfoItemUtil.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/apps/site/site-cms-site-initializer/src/main/java/com/liferay/site/cms/site/initializer/internal/util/InfoItemUtil.java b/modules/apps/site/site-cms-site-initializer/src/main/java/com/liferay/site/cms/site/initializer/internal/util/InfoItemUtil.java index 2ae2e2fc4ebed5..dc6fd0384ab4c2 100644 --- a/modules/apps/site/site-cms-site-initializer/src/main/java/com/liferay/site/cms/site/initializer/internal/util/InfoItemUtil.java +++ b/modules/apps/site/site-cms-site-initializer/src/main/java/com/liferay/site/cms/site/initializer/internal/util/InfoItemUtil.java @@ -6,8 +6,10 @@ package com.liferay.site.cms.site.initializer.internal.util; import com.liferay.depot.model.DepotEntry; +import com.liferay.depot.service.DepotEntryLocalServiceUtil; import com.liferay.info.constants.InfoDisplayWebKeys; import com.liferay.object.model.ObjectEntry; +import com.liferay.object.model.ObjectEntryFolder; import jakarta.servlet.http.HttpServletRequest; @@ -23,6 +25,11 @@ public static long getDepotEntryId(HttpServletRequest httpServletRequest) { DepotEntry depotEntry = object instanceof DepotEntry ? (DepotEntry)object : null; + if (depotEntry == null) { + depotEntry = DepotEntryLocalServiceUtil.fetchGroupDepotEntry( + getGroupId(httpServletRequest)); + } + if (depotEntry != null) { return depotEntry.getDepotEntryId(); } @@ -48,6 +55,14 @@ public static long getGroupId(HttpServletRequest httpServletRequest) { return objectEntry.getGroupId(); } + ObjectEntryFolder objectEntryFolder = + object instanceof ObjectEntryFolder ? (ObjectEntryFolder)object : + null; + + if (objectEntryFolder != null) { + return objectEntryFolder.getGroupId(); + } + return 0; } From 46b7aa95672d1f8d2c8d7b433f4270892e17f380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20D=C3=ADaz?= Date: Fri, 24 Oct 2025 16:53:20 +0200 Subject: [PATCH 2/2] LPD-69423 Add integration test for verifying props method use case in ViewSpacesSectionDisplayContext --- .../ViewSpacesSectionDisplayContextTest.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/modules/apps/site/site-cms-site-initializer-test/src/testIntegration/java/com/liferay/site/cms/site/initializer/internal/display/context/test/ViewSpacesSectionDisplayContextTest.java b/modules/apps/site/site-cms-site-initializer-test/src/testIntegration/java/com/liferay/site/cms/site/initializer/internal/display/context/test/ViewSpacesSectionDisplayContextTest.java index 8f9a8f34a7ea7c..61dec909991e19 100644 --- a/modules/apps/site/site-cms-site-initializer-test/src/testIntegration/java/com/liferay/site/cms/site/initializer/internal/display/context/test/ViewSpacesSectionDisplayContextTest.java +++ b/modules/apps/site/site-cms-site-initializer-test/src/testIntegration/java/com/liferay/site/cms/site/initializer/internal/display/context/test/ViewSpacesSectionDisplayContextTest.java @@ -12,16 +12,24 @@ import com.liferay.fragment.renderer.FragmentRenderer; import com.liferay.headless.asset.library.dto.v1_0.AssetLibrary; import com.liferay.headless.asset.library.resource.v1_0.AssetLibraryResource; +import com.liferay.object.constants.ObjectEntryFolderConstants; +import com.liferay.object.model.ObjectEntryFolder; +import com.liferay.object.service.ObjectEntryFolderLocalService; +import com.liferay.portal.kernel.json.JSONArray; +import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.model.User; import com.liferay.portal.kernel.security.permission.PermissionThreadLocal; import com.liferay.portal.kernel.service.ServiceContext; import com.liferay.portal.kernel.test.ReflectionTestUtil; import com.liferay.portal.kernel.test.rule.AggregateTestRule; import com.liferay.portal.kernel.test.util.RandomTestUtil; +import com.liferay.portal.kernel.test.util.ServiceContextTestUtil; import com.liferay.portal.kernel.test.util.TestPropsValues; import com.liferay.portal.kernel.test.util.UserTestUtil; import com.liferay.portal.kernel.theme.ThemeDisplay; +import com.liferay.portal.kernel.util.HashMapBuilder; import com.liferay.portal.kernel.util.LocaleUtil; +import com.liferay.portal.kernel.util.StringUtil; import com.liferay.portal.kernel.util.WebKeys; import com.liferay.portal.test.rule.FeatureFlag; import com.liferay.portal.test.rule.FeatureFlags; @@ -34,6 +42,8 @@ import java.util.Collection; import java.util.Collections; +import java.util.Map; +import java.util.Objects; import org.junit.Assert; import org.junit.Before; @@ -188,6 +198,52 @@ public void testGetPage() throws Exception { Assert.assertTrue(items.contains(pinnedByMeAssetLibrary5)); } + @Test + public void testGetProps() throws Exception { + AssetLibrary assetLibrary1 = _addAssetLibrary(); + + _addAssetLibrary(); + + DepotEntry depotEntry = _depotEntryLocalService.getDepotEntry( + assetLibrary1.getId()); + + ObjectEntryFolder objectEntryFolder = + _objectEntryFolderLocalService.addObjectEntryFolder( + null, depotEntry.getGroupId(), TestPropsValues.getUserId(), + ObjectEntryFolderConstants. + PARENT_OBJECT_ENTRY_FOLDER_ID_DEFAULT, + RandomTestUtil.randomString(), + HashMapBuilder.put( + LocaleUtil.getDefault(), StringUtil.randomString() + ).build(), + StringUtil.randomString(), + ServiceContextTestUtil.getServiceContext()); + + Map props = ReflectionTestUtil.invoke( + _getViewSpacesDisplayContext( + getMockHttpServletRequest(objectEntryFolder)), + "getProps", new Class[0]); + + Assert.assertNotNull(props); + + JSONArray assetLibrariesJSONArray = (JSONArray)props.get( + "assetLibraries"); + + for (int i = 0; i < assetLibrariesJSONArray.length(); i++) { + JSONObject assetLibraryJSONObject = + assetLibrariesJSONArray.getJSONObject(i); + + if (Objects.equals( + assetLibraryJSONObject.get("id"), assetLibrary1.getId())) { + + Assert.assertTrue(assetLibraryJSONObject.getBoolean("active")); + } + else { + Assert.assertFalse(assetLibraryJSONObject.getBoolean("active")); + } + } + } + protected ThemeDisplay getUserThemeDisplay( HttpServletRequest httpServletRequest, User user) throws Exception { @@ -286,4 +342,7 @@ private Object _getViewSpacesDisplayContext( ) private FragmentRenderer _fragmentRenderer; + @Inject + private ObjectEntryFolderLocalService _objectEntryFolderLocalService; + } \ No newline at end of file