From c16a118487cf67ed59694aa10e52510c09119233 Mon Sep 17 00:00:00 2001 From: Kunal Patel Date: Wed, 5 Aug 2026 16:20:17 -0400 Subject: [PATCH] feat: us new admin only methods --- .../config/ServerConfigurationResource.java | 11 +++++++++ .../auth/InsightAuthorizationResource.java | 2 +- .../auth/ProjectAuthorizationResource.java | 24 +++++++++---------- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/prerna/semoss/web/services/config/ServerConfigurationResource.java b/src/prerna/semoss/web/services/config/ServerConfigurationResource.java index b76c649f..88d1815a 100644 --- a/src/prerna/semoss/web/services/config/ServerConfigurationResource.java +++ b/src/prerna/semoss/web/services/config/ServerConfigurationResource.java @@ -135,6 +135,17 @@ private static void loadConfig() { loadConfig.put("adminOnlyProjectAddAccess", AbstractSecurityUtils.adminOnlyProjectAddAccess()); loadConfig.put("adminOnlyProjectSetPublic", AbstractSecurityUtils.adminOnlyProjectSetPublic()); loadConfig.put("adminOnlyProjectSetDiscoverable", AbstractSecurityUtils.adminOnlyProjectSetDiscoverable()); + loadConfig.put("adminOnlyWorkspaceAdd", AbstractSecurityUtils.adminOnlyWorkspaceAdd()); + loadConfig.put("adminOnlyWorkspaceDelete", AbstractSecurityUtils.adminOnlyWorkspaceDelete()); + loadConfig.put("adminOnlyWorkspaceAddAccess", AbstractSecurityUtils.adminOnlyWorkspaceAddAccess()); + loadConfig.put("adminOnlyWorkspaceSetPublic", AbstractSecurityUtils.adminOnlyWorkspaceSetPublic()); + loadConfig.put("adminOnlyWorkspaceSetDiscoverable", + AbstractSecurityUtils.adminOnlyWorkspaceSetDiscoverable()); + loadConfig.put("adminOnlySkillAdd", AbstractSecurityUtils.adminOnlySkillAdd()); + loadConfig.put("adminOnlySkillDelete", AbstractSecurityUtils.adminOnlySkillDelete()); + loadConfig.put("adminOnlySkillAddAccess", AbstractSecurityUtils.adminOnlySkillAddAccess()); + loadConfig.put("adminOnlySkillSetPublic", AbstractSecurityUtils.adminOnlySkillSetPublic()); + loadConfig.put("adminOnlySkillSetDiscoverable", AbstractSecurityUtils.adminOnlySkillSetDiscoverable()); // admin only for engine actions loadConfig.put("adminOnlyDbAdd", AbstractSecurityUtils.adminOnlyDatabaseAdd()); loadConfig.put("adminOnlyDbDelete", AbstractSecurityUtils.adminOnlyDatabaseDelete()); diff --git a/src/prerna/semoss/web/services/local/auth/InsightAuthorizationResource.java b/src/prerna/semoss/web/services/local/auth/InsightAuthorizationResource.java index 6c19325d..e585358c 100644 --- a/src/prerna/semoss/web/services/local/auth/InsightAuthorizationResource.java +++ b/src/prerna/semoss/web/services/local/auth/InsightAuthorizationResource.java @@ -706,7 +706,7 @@ public Response removeInsightUserPermissions(@Context HttpServletRequest request String projectId = WebUtility.inputSanitizer(form.getFirst("projectId")); String insightId = WebUtility.inputSanitizer(form.getFirst("insightId")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyInsightAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to remove users from having access to insight {} but is not an admin", insightId); Map errorMap = new HashMap(); diff --git a/src/prerna/semoss/web/services/local/auth/ProjectAuthorizationResource.java b/src/prerna/semoss/web/services/local/auth/ProjectAuthorizationResource.java index 274e45a8..78acdbd1 100644 --- a/src/prerna/semoss/web/services/local/auth/ProjectAuthorizationResource.java +++ b/src/prerna/semoss/web/services/local/auth/ProjectAuthorizationResource.java @@ -373,7 +373,7 @@ public Response addProjectUserPermission(@Context HttpServletRequest request, Mu String permission = WebUtility.inputSanitizer(form.getFirst("permission")); String endDate = WebUtility.inputSanitizer(form.getFirst("endDate")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to add a user for project {} but is not an admin", projectId); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -469,7 +469,7 @@ public Response propagateProjectDependencyPermission(@Context HttpServletRequest // Determine if admin right are required to add users and, if so, if requester // has those rights. - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(requester)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(requester)) { classLogger.warn("User is trying to add a user for project {} but is not an admin", projectId); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -518,7 +518,7 @@ public Response propagateProjectDependencyPermissions(@Context HttpServletReques // Determine if admin right are required to add users and, if so, if requester // has those rights. - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(requester)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(requester)) { classLogger.warn("User is trying to add a user for project {} but is not an admin", projectId); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -606,7 +606,7 @@ public Response editProjectUserPermission(@Context HttpServletRequest request, String newPermission = WebUtility.inputSanitizer(form.getFirst("permission")); String endDate = WebUtility.inputSanitizer(form.getFirst("endDate")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to edit user {} permissions for project {} but is not an admin", existingUserId, projectId); Map errorMap = new HashMap(); @@ -667,7 +667,7 @@ public Response editProjectUserPermissions(@Context HttpServletRequest request, String projectId = WebUtility.inputSanitizer(form.getFirst("projectId")); String endDate = WebUtility.inputSanitizer(form.getFirst("endDate")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to edit user permissions for project {} but is not an admin", projectId); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -726,7 +726,7 @@ public Response removeProjectUserPermission(@Context HttpServletRequest request, String existingUserId = WebUtility.inputSQLSanitizer(form.getFirst("id")); String projectId = WebUtility.inputSanitizer(form.getFirst("projectId")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to remove user {} from having access to project {} but is not an admin", existingUserId, projectId); Map errorMap = new HashMap(); @@ -785,7 +785,7 @@ public Response setProjectGlobal(@Context HttpServletRequest request, Multivalue boolean isPublic = Boolean.parseBoolean(form.getFirst("public")); String logPublic = isPublic ? " public " : " private"; - if (AbstractSecurityUtils.adminOnlyProjectSetPublic() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectSetPublic(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to set the project {}{} but is not an admin", projectId, logPublic); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -843,7 +843,7 @@ public Response setProjectDiscoverable(@Context HttpServletRequest request, Mult boolean isDiscoverable = Boolean.parseBoolean(form.getFirst("discoverable")); String logDiscoverable = isDiscoverable ? " discoverable " : " not discoverable"; - if (AbstractSecurityUtils.adminOnlyProjectSetDiscoverable() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectSetDiscoverable(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to set the project {}{} but is not an admin", projectId, logDiscoverable); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -1061,7 +1061,7 @@ public Response approveProjectUserAccessRequest(@Context HttpServletRequest requ String projectId = WebUtility.inputSanitizer(form.getFirst("projectId")); String endDate = WebUtility.inputSanitizer(form.getFirst("endDate")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to approve user access to project {} but is not an admin", projectId); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -1119,7 +1119,7 @@ public Response denyProjectUserAccessRequest(@Context HttpServletRequest request String projectId = WebUtility.inputSanitizer(form.getFirst("projectId")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to deny user access to project {} but is not an admin", projectId); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -1170,7 +1170,7 @@ public Response addProjectUserPermissions(@Context HttpServletRequest request, String projectId = WebUtility.inputSanitizer(form.getFirst("projectId")); String endDate = WebUtility.inputSanitizer(form.getFirst("endDate")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to add user permissions to project {} but is not an admin", projectId); Map errorMap = new HashMap(); errorMap.put(Constants.ERROR_MESSAGE, "This functionality is limited to only admins"); @@ -1247,7 +1247,7 @@ public Response removeProjectUserPermissions(@Context HttpServletRequest request List ids = gson.fromJson(form.getFirst("ids"), List.class); String projectId = WebUtility.inputSanitizer(form.getFirst("projectId")); - if (AbstractSecurityUtils.adminOnlyProjectAddAccess() && !SecurityAdminUtils.userIsAdmin(user)) { + if (AbstractSecurityUtils.adminOnlyProjectAddAccess(projectId) && !SecurityAdminUtils.userIsAdmin(user)) { classLogger.warn("User is trying to remove users from having access to project {} but is not an admin", projectId); Map errorMap = new HashMap();