From 4ddc922b994a2f095c68df378df7edf4b294ed6a Mon Sep 17 00:00:00 2001 From: Boubaker Khanfir Date: Tue, 1 Oct 2024 16:08:51 +0100 Subject: [PATCH] feat: Update calls to UserACL to avoid implicit usage of Conversation State in Service Layer - MEED-7555 - Meeds-io/MIPs#151 (#1146) This change will update UserACL usage to not implicitly use the current conversation state of authenticated user. --- .../notes/rest/NotePageViewRestTest.java | 21 ++++++++++--------- .../service/NotePageViewServiceTest.java | 8 +------ .../exoplatform/wiki/mock/MockUserACL.java | 9 -------- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java b/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java index 91e988dce7..8165653850 100644 --- a/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java +++ b/notes-service/src/test/java/io/meeds/notes/rest/NotePageViewRestTest.java @@ -34,13 +34,13 @@ import org.exoplatform.container.ExoContainerContext; import org.exoplatform.portal.config.UserACL; import org.exoplatform.portal.config.model.PortalConfig; -import org.exoplatform.portal.mop.PageType; import org.exoplatform.portal.mop.page.PageContext; import org.exoplatform.portal.mop.page.PageKey; import org.exoplatform.portal.mop.page.PageState; import org.exoplatform.portal.mop.service.LayoutService; import org.exoplatform.services.rest.impl.ContainerResponse; import org.exoplatform.services.rest.impl.MultivaluedMapImpl; +import org.exoplatform.services.security.ConversationState; import org.exoplatform.services.security.IdentityRegistry; import org.exoplatform.services.security.MembershipEntry; import org.exoplatform.social.rest.api.RestUtils; @@ -112,14 +112,18 @@ public void testGetNotePageWithAnonim() throws ObjectAlreadyExistsException { Page notePage = getNotePage(pageNoteName, null); assertNull(notePage); + assertEquals(403, saveNotePage(pageNoteName, pageContent, null).getStatus()); + resetRestUtils(); + registerInternalUser(USERNAME); assertEquals(401, saveNotePage(pageNoteName, pageContent, null).getStatus()); assertEquals(404, saveNotePage(pageNoteName + "22", pageContent, null).getStatus()); registerAdministratorUser(USERNAME); - saveNotePage(pageNoteName, pageContent, null); + assertEquals(204, saveNotePage(pageNoteName, pageContent, null).getStatus()); + restartTransaction(); - resetRestUtils(); + registerInternalUser(USERNAME); notePage = getNotePage(pageNoteName, null); assertNotNull(notePage); assertEquals(pageContent, notePage.getContent()); @@ -186,14 +190,9 @@ private String createPage(String pageName, String accessPermission, String editP PageState pageState = new PageState(pageName, null, false, - false, null, Collections.singletonList(accessPermission), - editPermission, - Collections.singletonList(editPermission), - Collections.singletonList(editPermission), - PageType.PAGE.name(), - null); + editPermission); layoutService.save(new PageContext(pageKey, pageState)); return pageKey.format(); } @@ -254,8 +253,9 @@ private ContainerResponse saveNotePage(String name, String content, String lang) private org.exoplatform.services.security.Identity registerAdministratorUser(String user) { org.exoplatform.services.security.Identity identity = new org.exoplatform.services.security.Identity(user, - Arrays.asList(MembershipEntry.parse(ADMINISTRATORS_GROUP))); + Arrays.asList(MembershipEntry.parse(ADMINISTRATORS_GROUP), MembershipEntry.parse(USERS_GROUP))); identityRegistry.register(identity); + ConversationState.setCurrent(new ConversationState(identity)); resetRestUtils(); REST_UTILS.when(RestUtils::getCurrentUser).thenReturn(USERNAME); REST_UTILS.when(RestUtils::getCurrentUserAclIdentity).thenReturn(identity); @@ -267,6 +267,7 @@ private org.exoplatform.services.security.Identity registerInternalUser(String u new org.exoplatform.services.security.Identity(username, Arrays.asList(MembershipEntry.parse(USERS_GROUP))); identityRegistry.register(identity); + ConversationState.setCurrent(new ConversationState(identity)); resetRestUtils(); REST_UTILS.when(RestUtils::getCurrentUser).thenReturn(USERNAME); REST_UTILS.when(RestUtils::getCurrentUserAclIdentity).thenReturn(identity); diff --git a/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java b/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java index 8656e32260..c80ada9edf 100644 --- a/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java +++ b/notes-service/src/test/java/io/meeds/notes/service/NotePageViewServiceTest.java @@ -29,7 +29,6 @@ import org.exoplatform.commons.exception.ObjectNotFoundException; import org.exoplatform.portal.config.UserACL; import org.exoplatform.portal.config.model.PortalConfig; -import org.exoplatform.portal.mop.PageType; import org.exoplatform.portal.mop.page.PageContext; import org.exoplatform.portal.mop.page.PageKey; import org.exoplatform.portal.mop.page.PageState; @@ -161,14 +160,9 @@ private String createPage(String pageName, String accessPermission, String editP PageState pageState = new PageState(pageName, null, false, - false, null, Collections.singletonList(accessPermission), - editPermission, - Collections.singletonList(editPermission), - Collections.singletonList(editPermission), - PageType.PAGE.name(), - null); + editPermission); layoutService.save(new PageContext(pageKey, pageState)); return pageKey.format(); } diff --git a/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java b/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java index 7345412b60..fabaa95db9 100644 --- a/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java +++ b/notes-service/src/test/java/org/exoplatform/wiki/mock/MockUserACL.java @@ -18,18 +18,9 @@ import org.exoplatform.container.xml.InitParams; import org.exoplatform.portal.config.UserACL; -import org.exoplatform.portal.config.model.Page; public class MockUserACL extends UserACL { - /* (non-Javadoc) - * @see org.exoplatform.portal.config.UserACL#hasPermission(org.exoplatform.portal.config.model.Page) - */ - @Override - public boolean hasPermission(Page page) { - return true; - } - /** * @param params */