diff --git a/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java b/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java index 8f80af25db..51e559ae51 100644 --- a/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java +++ b/repository/src/main/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuter.java @@ -4,21 +4,21 @@ * %% * Copyright (C) 2005 - 2016 Alfresco Software Limited * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * 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 . * #L% @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; import org.alfresco.repo.action.ParameterDefinitionImpl; +import org.alfresco.repo.action.access.ActionAccessRestriction; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.action.ParameterDefinition; @@ -42,7 +43,7 @@ import org.alfresco.service.transaction.TransactionService; /** * Add features action executor implementation. - * + * * @author Roy Wetherall */ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase @@ -64,7 +65,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase /** * Set the node service - * + * * @param nodeService * the node service */ @@ -75,7 +76,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase /** * Set the transaction service - * + * * @param transactionService * the transaction service */ @@ -115,6 +116,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase // Build the aspect details Map paramValues = ruleAction.getParameterValues(); + removeActionContextParameter(paramValues); for (Map.Entry entry : paramValues.entrySet()) { if (entry.getKey().equals(PARAM_ASPECT_NAME) == true) @@ -147,4 +149,12 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase paramList.add(new ParameterDefinitionImpl(PARAM_ASPECT_NAME, DataTypeDefinition.QNAME, true, getParamDisplayLabel(PARAM_ASPECT_NAME), false, "ac-aspects")); } + /** + * Remove actionContext from the parameter values to declassify as an adhoc property + */ + private void removeActionContextParameter(Map paramValues) + { + paramValues.remove(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME); + } + } diff --git a/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java b/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java index 19b12b2208..167dfce62c 100644 --- a/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java +++ b/repository/src/test/java/org/alfresco/repo/action/executer/AddFeaturesActionExecuterTest.java @@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import org.alfresco.model.ContentModel; import org.alfresco.repo.action.ActionImpl; +import org.alfresco.repo.action.access.ActionAccessRestriction; import org.alfresco.repo.security.authentication.AuthenticationComponent; import org.alfresco.service.cmr.action.ActionDefinition; import org.alfresco.service.cmr.action.ParameterDefinition; @@ -162,4 +163,20 @@ public class AddFeaturesActionExecuterTest extends BaseSpringTest I18NUtil.setLocale(Locale.getDefault()); } + + /** + * Test check actionContext param is removed from adhoc properties + */ + @Test + public void testCheckActionContext() + { + // Execute the action + ActionImpl action = new ActionImpl(null, ID, AddFeaturesActionExecuter.NAME, null); + action.setParameterValue(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME, ActionAccessRestriction.V1_ACTION_CONTEXT); + action.setParameterValue(AddFeaturesActionExecuter.PARAM_ASPECT_NAME, ContentModel.ASPECT_CLASSIFIABLE); + this.executer.execute(action, this.nodeRef); + + // Ensure the actionContext parameter has been removed + assertFalse(nodeService.getProperties(this.nodeRef).containsKey(QName.createQName(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME))); + } }