From 35afc42a8c33905383a4b961844c2348b206ff7c Mon Sep 17 00:00:00 2001 From: David Webster Date: Thu, 7 May 2015 14:01:56 +0000 Subject: [PATCH] RM-2120: Add Java backed webscript to set the security clearance for a specified user git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@103827 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rm-webscript-context.xml | 7 ++ .../usersecurityclearance.put.desc.xml | 8 ++ .../usersecurityclearance.put.json.ftl | 7 ++ .../UserSecurityClearancePut.java | 74 +++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.desc.xml create mode 100644 rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.json.ftl create mode 100644 rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/UserSecurityClearancePut.java diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml index 7b3c3bace7..b4ec9ac3da 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml @@ -676,4 +676,11 @@ parent="rmBaseWebscript"> + + + + + \ No newline at end of file diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.desc.xml new file mode 100644 index 0000000000..60dc018fb4 --- /dev/null +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.desc.xml @@ -0,0 +1,8 @@ + + Users security clearance + REST API to set users security clearance + /api/classification/clearance?username={username}&clearanceId={clearanceId} + argument + admin + required + \ No newline at end of file diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.json.ftl new file mode 100644 index 0000000000..9be5042510 --- /dev/null +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/usersecurityclearance.put.json.ftl @@ -0,0 +1,7 @@ +<#import "usersecurityclearance.lib.ftl" as usersecurityclearance /> + +<#escape x as jsonUtils.encodeJSONString(x)> +{ + "data": <@usersecurityclearance.usersecurityclearanceJSON item=item /> +} + \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/UserSecurityClearancePut.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/UserSecurityClearancePut.java new file mode 100644 index 0000000000..a75b7347ea --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/UserSecurityClearancePut.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2005-2015 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.module.org_alfresco_module_rm.script.classification; + +import org.alfresco.module.org_alfresco_module_rm.classification.SecurityClearance; +import org.alfresco.module.org_alfresco_module_rm.classification.SecurityClearanceService; +import org.alfresco.module.org_alfresco_module_rm.script.AbstractRmWebScript; +import org.springframework.extensions.webscripts.Cache; +import org.springframework.extensions.webscripts.Status; +import org.springframework.extensions.webscripts.WebScriptRequest; + +import java.util.HashMap; +import java.util.Map; + +/** + * Implementation for Java backed webscript to set users security clearance. + * + * @author David Webster + * @author Tom Page + * @since 3.0 + */ +public class UserSecurityClearancePut extends AbstractRmWebScript +{ + /** Constants */ + private static final String USERNAME = "username"; + private static final String CLEARANCE_ID = "clearanceId"; + private static final String ITEM = "item"; + + /** Security clearance service */ + private SecurityClearanceService securityClearanceService; + + /** + * @param securityClearanceService the securityClearanceService to set + */ + public void setSecurityClearanceService(SecurityClearanceService securityClearanceService) + { + this.securityClearanceService = securityClearanceService; + } + + /** + * @see org.springframework.extensions.webscripts.DeclarativeWebScript#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest, + * org.springframework.extensions.webscripts.Status, + * org.springframework.extensions.webscripts.Cache) + */ + @Override + protected Map executeImpl(WebScriptRequest req, Status status, Cache cache) + { + String username = req.getParameter(USERNAME); + String clearanceId = req.getParameter(CLEARANCE_ID); + + SecurityClearance securityClearance = securityClearanceService.setUserSecurityClearance(username, clearanceId); + + Map model = new HashMap<>(); + model.put(ITEM, securityClearance); + + return model; + } +}