From e68089092be1b990422f60999d8b0822cecce7ff Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Fri, 13 Jun 2025 00:10:00 -0700 Subject: [PATCH 1/2] Eliminate deprecated SecurityHelper --- src/org/labkey/test/BaseWebDriverTest.java | 3 -- .../labkey/test/tests/AbstractAssayTest.java | 2 +- src/org/labkey/test/tests/GroupTest.java | 10 ++-- .../test/tests/WebpartPermissionsTest.java | 23 ++++++---- .../labkey/test/tests/wiki/WikiLongTest.java | 6 +-- src/org/labkey/test/util/SecurityHelper.java | 46 ------------------- 6 files changed, 22 insertions(+), 68 deletions(-) delete mode 100644 src/org/labkey/test/util/SecurityHelper.java diff --git a/src/org/labkey/test/BaseWebDriverTest.java b/src/org/labkey/test/BaseWebDriverTest.java index 77603bbc85..88fac31b26 100644 --- a/src/org/labkey/test/BaseWebDriverTest.java +++ b/src/org/labkey/test/BaseWebDriverTest.java @@ -87,7 +87,6 @@ import org.labkey.test.util.PermissionsHelper; import org.labkey.test.util.PipelineToolsHelper; import org.labkey.test.util.ReadOnlyTest; -import org.labkey.test.util.SecurityHelper; import org.labkey.test.util.SimpleHttpResponse; import org.labkey.test.util.StudyHelper; import org.labkey.test.util.TestLogger; @@ -208,8 +207,6 @@ public abstract class BaseWebDriverTest extends LabKeySiteWrapper implements Cle public StudyHelper _studyHelper = new StudyHelper(this); public final ListHelper _listHelper; public AbstractAssayHelper _assayHelper = new APIAssayHelper(this); - @Deprecated // Redundant class. Use ApiPermissionsHelper or UiPermissionsHelper - public SecurityHelper _securityHelper = new SecurityHelper(this); public FileBrowserHelper _fileBrowserHelper = new FileBrowserHelper(this); @Deprecated // Use ApiPermissionsHelper unless UI testing is necessary public UIPermissionsHelper _permissionsHelper = new UIPermissionsHelper(this); diff --git a/src/org/labkey/test/tests/AbstractAssayTest.java b/src/org/labkey/test/tests/AbstractAssayTest.java index 6a211b022c..26929a99c0 100644 --- a/src/org/labkey/test/tests/AbstractAssayTest.java +++ b/src/org/labkey/test/tests/AbstractAssayTest.java @@ -291,7 +291,7 @@ protected void setSubfolderSecurity(String project, String subfolder, String gro _permissionsHelper.removePermission(group, "Reader"); } else - _securityHelper.setProjectPerm(group, perms); + _permissionsHelper.setPermissions(group, perms); } /** diff --git a/src/org/labkey/test/tests/GroupTest.java b/src/org/labkey/test/tests/GroupTest.java index 01777a270a..f53b8b6d1e 100644 --- a/src/org/labkey/test/tests/GroupTest.java +++ b/src/org/labkey/test/tests/GroupTest.java @@ -129,9 +129,9 @@ public void testSteps() throws IOException, CommandException _permissionsHelper.enterPermissionsUI(); waitForText("Author"); - _securityHelper.setSiteGroupPermissions(COMPOUND_GROUP, "Author"); - _securityHelper.setSiteGroupPermissions(COMPOUND_GROUP, "Reader"); - _securityHelper.setSiteGroupPermissions(SIMPLE_GROUP, "Editor"); + _permissionsHelper.setSiteGroupPermissions(COMPOUND_GROUP, "Author"); + _permissionsHelper.setSiteGroupPermissions(COMPOUND_GROUP, "Reader"); + _permissionsHelper.setSiteGroupPermissions(SIMPLE_GROUP, "Editor"); clickButton("Save and Finish"); assertUserCanSeeProject(TEST_USERS_FOR_GROUP[0], getProjectName()); //can't add built in group to regular group @@ -141,7 +141,7 @@ public void testSteps() throws IOException, CommandException clickProject(getProjectName()); _permissionsHelper.enterPermissionsUI(); waitForText("Author"); - _securityHelper.setSiteGroupPermissions("All Site Users", "Author"); + _permissionsHelper.setSiteGroupPermissions("All Site Users", "Author"); permissionsReportTest(); // Ensure that deleting from the group's page works too. Issue 52614 @@ -205,7 +205,7 @@ private void verifyImpersonate() WikiHelper wikiHelper = new WikiHelper(this); //set simple group as editor - _securityHelper.setSiteGroupPermissions(SIMPLE_GROUP, "Editor"); + _permissionsHelper.setSiteGroupPermissions(SIMPLE_GROUP, "Editor"); //impersonate user 1, make several wiki edits impersonate(TEST_USERS_FOR_GROUP[0]); diff --git a/src/org/labkey/test/tests/WebpartPermissionsTest.java b/src/org/labkey/test/tests/WebpartPermissionsTest.java index c67c404912..d1da744a44 100644 --- a/src/org/labkey/test/tests/WebpartPermissionsTest.java +++ b/src/org/labkey/test/tests/WebpartPermissionsTest.java @@ -22,6 +22,8 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; +import org.labkey.test.util.ApiPermissionsHelper; +import org.labkey.test.util.PermissionsHelper; import org.labkey.test.util.PortalHelper; import java.util.Arrays; @@ -126,10 +128,11 @@ private void verifyReadEditUpdate(String[] webparts) private void setPermissionsOnDummyFolder() { - clickProject(DUMMY_PROJECT_NAME); - _securityHelper.setProjectPerm(users[0], DUMMY_PROJECT_NAME, "Reader"); - _securityHelper.setProjectPerm(users[1], "Editor"); - _securityHelper.setProjectPerm(users[2], "Project Administrator"); + // Target permissions operations at non-default project + PermissionsHelper helper = new ApiPermissionsHelper(DUMMY_PROJECT_NAME); + helper.setPermissions(users[0], "Reader"); + helper.setPermissions(users[1], "Editor"); + helper.setPermissions(users[2], "Project Administrator"); } private void verifyNoWebpartsVisible() @@ -146,16 +149,16 @@ private void verifyNoWebpartsVisible() private void setUpFocusFolder() { - /** - * this folder has three parts, with permissions set (dependent on DUMMY_PROJECT - * Flow Experiment managagement = Administrate - * Flow Analyses = Edit - * Flow Script = Read + /* + this folder has three parts, with permissions set (dependent on DUMMY_PROJECT + Flow Experiment management = Administrate + Flow Analyses = Edit + Flow Script = Read */ _containerHelper.createProject(getProjectName(), "Collaboration"); importFolderFromZip(TestFileUtils.getSampleData("webpartPerm/webPerms.folder.zip")); //set all users to Reader so they have access to the folder - _securityHelper.setSiteGroupPermissions("All Site Users", "Reader"); + _permissionsHelper.setSiteGroupPermissions("All Site Users", "Reader"); } //This folder contains no data, but will create users and set them with specific permissions diff --git a/src/org/labkey/test/tests/wiki/WikiLongTest.java b/src/org/labkey/test/tests/wiki/WikiLongTest.java index d2f6e318f4..37757f689c 100644 --- a/src/org/labkey/test/tests/wiki/WikiLongTest.java +++ b/src/org/labkey/test/tests/wiki/WikiLongTest.java @@ -180,13 +180,13 @@ public void testSteps() enableEmailRecorder(); _containerHelper.createProject(PROJECT2_NAME, null); _containerHelper.enableModule(PROJECT2_NAME, "MS2"); - _securityHelper.setProjectPerm(USERS_GROUP, "Editor"); + _permissionsHelper.setPermissions(USERS_GROUP, "Editor"); clickButton("Save and Finish"); _containerHelper.createProject(PROJECT_NAME, null); _containerHelper.enableModule(PROJECT_NAME, "MS2"); _permissionsHelper.createPermissionsGroup("testers"); - _securityHelper.setProjectPerm("testers", "Editor"); - _securityHelper.setProjectPerm(USERS_GROUP, "Editor"); + _permissionsHelper.setPermissions("testers", "Editor"); + _permissionsHelper.setPermissions(USERS_GROUP, "Editor"); clickButton("Save and Finish"); goToFolderManagement(); clickAndWait(Locator.linkWithText("Folder Type")); diff --git a/src/org/labkey/test/util/SecurityHelper.java b/src/org/labkey/test/util/SecurityHelper.java deleted file mode 100644 index ceb0e4b663..0000000000 --- a/src/org/labkey/test/util/SecurityHelper.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2014-2019 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.labkey.test.util; - -import org.labkey.test.BaseWebDriverTest; - -@Deprecated // Redundant class. Use ApiPermissionsHelper or UiPermissionsHelper -public class SecurityHelper -{ - protected BaseWebDriverTest _test; - - public SecurityHelper(BaseWebDriverTest test) - { - _test = test; - } - - public void setSiteGroupPermissions(String groupName, String permissionString) - { - _test._permissionsHelper.setSiteGroupPermissions(groupName, permissionString); - } - - public void setProjectPerm(String userOrGroupName, String permission) - { - _test._permissionsHelper.setPermissions(userOrGroupName, permission); - } - - public void setProjectPerm(String userOrGroupName, String folder, String permission) - { - if(_test.getCurrentContainerPath().equals("/" + folder)) - _test.beginAt("/" + folder + "/project-begin.view"); - _test._permissionsHelper.setPermissions(userOrGroupName, permission); - } -} From d21e007368568e23fa3125e04615127a2b021d13 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Fri, 13 Jun 2025 15:40:17 -0700 Subject: [PATCH 2/2] PermissionsHelper implementations are inconsistent; must call setUserPermissions() for users if API --- src/org/labkey/test/tests/WebpartPermissionsTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/org/labkey/test/tests/WebpartPermissionsTest.java b/src/org/labkey/test/tests/WebpartPermissionsTest.java index d1da744a44..3baf89e681 100644 --- a/src/org/labkey/test/tests/WebpartPermissionsTest.java +++ b/src/org/labkey/test/tests/WebpartPermissionsTest.java @@ -130,9 +130,9 @@ private void setPermissionsOnDummyFolder() { // Target permissions operations at non-default project PermissionsHelper helper = new ApiPermissionsHelper(DUMMY_PROJECT_NAME); - helper.setPermissions(users[0], "Reader"); - helper.setPermissions(users[1], "Editor"); - helper.setPermissions(users[2], "Project Administrator"); + helper.setUserPermissions(users[0], "Reader"); + helper.setUserPermissions(users[1], "Editor"); + helper.setUserPermissions(users[2], "Project Administrator"); } private void verifyNoWebpartsVisible()