assocs = nodeService.getParentAssocs(nodeRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
+ for (ChildAssociationRef assoc : assocs)
{
- @Override
- public Boolean doWork()
+ NodeRef parent = assoc.getParentRef();
+ if (recordFolderService.isRecordFolder(parent) &&
+ recordFolderService.isRecordFolderClosed(parent))
{
- for (ChildAssociationRef assoc : assocs)
- {
- NodeRef parent = assoc.getParentRef();
- if (recordFolderService.isRecordFolder(parent) && recordFolderService.isRecordFolderClosed(parent))
- {
- return true;
- }
- }
- return false;
+ result = true;
+ break;
}
- });
-
+ }
}
return result;
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/FillingOnHoldContainerCapabilityCondition.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/FillingOnHoldContainerCapabilityCondition.java
deleted file mode 100644
index 391f81d74f..0000000000
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/FillingOnHoldContainerCapabilityCondition.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2005-2014 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.capability.declarative.condition;
-
-import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
-import org.alfresco.module.org_alfresco_module_rm.capability.declarative.AbstractCapabilityCondition;
-import org.alfresco.service.cmr.repository.NodeRef;
-import org.alfresco.service.cmr.security.AccessStatus;
-
-/**
- * Filling capability for hold condition.
- *
- * @author Roy Wetherall
- * @since 2.3
- */
-public class FillingOnHoldContainerCapabilityCondition extends AbstractCapabilityCondition
-{
- /**
- * @see org.alfresco.module.org_alfresco_module_rm.capability.declarative.CapabilityCondition#evaluate(org.alfresco.service.cmr.repository.NodeRef)
- */
- @Override
- public boolean evaluateImpl(NodeRef nodeRef)
- {
- boolean result = false;
- NodeRef holdContainer = nodeRef;
-
- // if we have a file plan, go get the hold container
- if (filePlanService.isFilePlan(nodeRef) == true)
- {
- holdContainer = filePlanService.getHoldContainer(nodeRef);
- }
-
- // ensure we are dealing with a hold container
- if (TYPE_HOLD_CONTAINER.equals(nodeService.getType(holdContainer)))
- {
- if (permissionService.hasPermission(holdContainer, RMPermissionModel.FILE_RECORDS) != AccessStatus.DENIED)
- {
- result = true;
- }
- }
-
- return result;
- }
-}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/FrozenCapabilityCondition.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/FrozenCapabilityCondition.java
index a7b4e5132a..dd271ed432 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/FrozenCapabilityCondition.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/FrozenCapabilityCondition.java
@@ -19,57 +19,27 @@
package org.alfresco.module.org_alfresco_module_rm.capability.declarative.condition;
import org.alfresco.module.org_alfresco_module_rm.capability.declarative.AbstractCapabilityCondition;
-import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
import org.alfresco.service.cmr.repository.NodeRef;
/**
- * Indicates whether an item is held or not.
- *
- * A hold object is by definition considered to be held.
- *
* @author Roy Wetherall
*/
public class FrozenCapabilityCondition extends AbstractCapabilityCondition
{
- /** indicates whether children should be checked */
- private boolean checkChildren = false;
-
- /** hold service */
- private HoldService holdService;
+private boolean checkChildren = false;
- /**
- * @param checkChildren true to check children, false otherwise
- */
public void setCheckChildren(boolean checkChildren)
{
this.checkChildren = checkChildren;
}
-
- /**
- * @param holdService hold service
- */
- public void setHoldService(HoldService holdService)
- {
- this.holdService = holdService;
- }
@Override
public boolean evaluateImpl(NodeRef nodeRef)
{
- boolean result = false;
-
- // check whether we are working with a hold or not
- if (holdService.isHold(nodeRef))
+ boolean result = freezeService.isFrozen(nodeRef);
+ if (!result && checkChildren)
{
- result = true;
- }
- else
- {
- result = freezeService.isFrozen(nodeRef);
- if (!result && checkChildren)
- {
- result = freezeService.hasFrozenChildren(nodeRef);
- }
+ result = freezeService.hasFrozenChildren(nodeRef);
}
return result;
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/HoldCapabilityCondition.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/HoldCapabilityCondition.java
index 1f860ae8d0..9666de3539 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/HoldCapabilityCondition.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/condition/HoldCapabilityCondition.java
@@ -62,23 +62,16 @@ public class HoldCapabilityCondition extends AbstractCapabilityCondition
{
boolean result = false;
- if (holdService.isHold(nodeRef))
+ List holds = holdService.heldBy(nodeRef, includedInHold);
+ for (NodeRef hold : holds)
{
- result = AccessStatus.ALLOWED.equals(permissionService.hasPermission(nodeRef, RMPermissionModel.FILING));
- }
- else
- {
- List holds = holdService.heldBy(nodeRef, includedInHold);
- for (NodeRef hold : holds)
+ // return true as soon as we find one hold we have filling permission on
+ if (AccessStatus.ALLOWED.equals(permissionService.hasPermission(hold, RMPermissionModel.FILING)))
{
- // return true as soon as we find one hold we have filling permission on
- if (AccessStatus.ALLOWED.equals(permissionService.hasPermission(hold, RMPermissionModel.FILING)))
- {
- result = true;
- break;
- }
+ result = true;
+ break;
}
- }
+ }
return result;
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java
index f050fc1ab9..07fb58b887 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java
@@ -30,6 +30,16 @@ import org.alfresco.service.cmr.repository.NodeRef;
*/
public class ChangeOrDeleteReferencesCapability extends DeclarativeCapability
{
+ /**
+ * @see org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCapability#evaluateImpl(org.alfresco.service.cmr.repository.NodeRef)
+ */
+ @Override
+ protected int evaluateImpl(NodeRef nodeRef)
+ {
+ // Can't be sure, because we don't have information about the target so we still abstain
+ return AccessDecisionVoter.ACCESS_ABSTAIN;
+ }
+
/**
* @see org.alfresco.module.org_alfresco_module_rm.capability.AbstractCapability#evaluate(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef)
*/
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java
index e05aebda12..77e2f8cc6d 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java
@@ -94,7 +94,7 @@ public class CreateCapability extends DeclarativeCapability
{
if (linkee == null)
{
- if (recordService.isRecord(destination) &&
+ if (recordService.isRecord(destination) &&
!recordService.isDeclared(destination) &&
permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
{
@@ -121,13 +121,6 @@ public class CreateCapability extends DeclarativeCapability
conditions.put("capabilityCondition.closed", Boolean.FALSE);
conditions.put("capabilityCondition.cutoff", Boolean.FALSE);
- // if the destination folder is not a record folder and the user has filling capability on it, grant access to create the record
- if (checkConditions(destination, conditions) &&
- !recordFolderService.isRecordFolder(destination) )
- {
- return AccessDecisionVoter.ACCESS_GRANTED;
- }
-
if (checkConditions(destination, conditions) &&
recordFolderService.isRecordFolder(destination) &&
permissionService.hasPermission(destination, RMPermissionModel.FILE_RECORDS) == AccessStatus.ALLOWED)
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/EditNonRecordMetadataCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/EditNonRecordMetadataCapability.java
deleted file mode 100644
index fa1cc976c6..0000000000
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/EditNonRecordMetadataCapability.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2005-2014 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.capability.impl;
-
-import net.sf.acegisecurity.vote.AccessDecisionVoter;
-
-import org.alfresco.module.org_alfresco_module_rm.capability.declarative.DeclarativeCapability;
-import org.alfresco.module.org_alfresco_module_rm.record.RecordServiceImpl;
-import org.alfresco.module.org_alfresco_module_rm.util.TransactionalResourceHelper;
-import org.alfresco.service.cmr.repository.NodeRef;
-
-/**
- * Edit non record metadata capability
- *
- * @author Roy Wetherall
- * @since 2.3
- */
-public class EditNonRecordMetadataCapability extends DeclarativeCapability
-{
- /** transaction resource helper */
- private TransactionalResourceHelper transactionalResourceHelper;
-
- /**
- * @param transactionalResourceHelper transaction resource helper
- */
- public void setTransactionalResourceHelper(TransactionalResourceHelper transactionalResourceHelper)
- {
- this.transactionalResourceHelper = transactionalResourceHelper;
- }
-
- @Override
- public int evaluate(NodeRef nodeRef)
- {
- // check if this node is a new record
- if (transactionalResourceHelper.getSet(RecordServiceImpl.KEY_NEW_RECORDS).contains(nodeRef))
- {
- // since this is a new record created within this transaction, ignore the usual capability check
- // under the assumption that the user has CreateRecord
- // @see https://issues.alfresco.com/jira/browse/RM-1956
- return AccessDecisionVoter.ACCESS_GRANTED;
- }
-
- return super.evaluate(nodeRef);
- }
-
-
-}
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/AssocPolicy.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/AssocPolicy.java
index 0db6c2f053..657831e395 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/AssocPolicy.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/AssocPolicy.java
@@ -18,7 +18,7 @@
*/
package org.alfresco.module.org_alfresco_module_rm.capability.policy;
-import org.alfresco.module.org_alfresco_module_rm.capability.impl.ViewRecordsCapability;
+import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
import org.alfresco.service.cmr.repository.NodeRef;
import org.aopalliance.intercept.MethodInvocation;
@@ -32,7 +32,7 @@ public class AssocPolicy extends AbstractBasePolicy
ConfigAttributeDefinition cad)
{
NodeRef testNodeRef = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
- return getCapabilityService().getCapability(ViewRecordsCapability.NAME).evaluate(testNodeRef);
+ return getCapabilityService().getCapability(RMPermissionModel.VIEW_RECORDS).evaluate(testNodeRef);
}
}
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/ReadPolicy.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/ReadPolicy.java
index d86971029e..decc5e51e2 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/ReadPolicy.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/ReadPolicy.java
@@ -18,7 +18,7 @@
*/
package org.alfresco.module.org_alfresco_module_rm.capability.policy;
-import org.alfresco.module.org_alfresco_module_rm.capability.impl.ViewRecordsCapability;
+import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
import org.alfresco.service.cmr.repository.NodeRef;
import org.aopalliance.intercept.MethodInvocation;
@@ -38,6 +38,6 @@ public class ReadPolicy extends AbstractBasePolicy
ConfigAttributeDefinition cad)
{
NodeRef testNodeRef = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
- return getCapabilityService().getCapability(ViewRecordsCapability.NAME).evaluate(testNodeRef);
+ return getCapabilityService().getCapability(RMPermissionModel.VIEW_RECORDS).evaluate(testNodeRef);
}
}
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/UpdatePropertiesPolicy.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/UpdatePropertiesPolicy.java
index 02f30dbc1b..4cfa0cbca1 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/UpdatePropertiesPolicy.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/UpdatePropertiesPolicy.java
@@ -32,4 +32,5 @@ public class UpdatePropertiesPolicy extends AbstractBasePolicy
NodeRef nodeRef = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
return getCapabilityService().getCapability("UpdateProperties").evaluate(nodeRef);
}
+
}
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigComponentImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigComponentImpl.java
index 84f39925c5..ea46bcbe21 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigComponentImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigComponentImpl.java
@@ -18,8 +18,6 @@
*/
package org.alfresco.module.org_alfresco_module_rm.caveat;
-import static org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace;
-
import java.io.File;
import java.io.InputStream;
import java.io.Serializable;
@@ -994,58 +992,31 @@ public class RMCaveatConfigComponentImpl implements ContentServicePolicies.OnCon
*/
private String convertToJSONString(SimpleCache>> config)
{
- JSONObject configJSONObject = new JSONObject();
+ JSONObject obj = new JSONObject();
- Collection listNames = config.getKeys();
- for (String listName : listNames)
+ try
{
- Map> members = config.get(listName);
-
- Set authorityNames = members.keySet();
- JSONObject listMembers = new JSONObject();
-
- for (String authorityName : authorityNames)
+ Collection listNames = config.getKeys();
+ for(String listName : listNames)
{
- List authorities = members.get(authorityName);
- try
+ Map> members = config.get(listName);
+
+ Set authorityNames = members.keySet();
+ JSONObject listMembers = new JSONObject();
+
+ for(String authorityName : authorityNames)
{
- listMembers.put(authorityName, authorities);
+ listMembers.put(authorityName, members.get(authorityName));
}
- catch (JSONException error)
- {
- StringBuilder sb = new StringBuilder();
- sb.append("Cannot add the key '");
- sb.append(authorityName);
- sb.append("' with the value '");
- sb.append(authorities);
- sb.append("' to the JSONObject 'listMembers' '");
- sb.append(listMembers);
- sb.append("': ");
- sb.append(getFullStackTrace(error));
- throw new AlfrescoRuntimeException(sb.toString());
- }
- }
- try
- {
- configJSONObject.put(listName, listMembers);
- }
- catch (JSONException error)
- {
- StringBuilder sb = new StringBuilder();
- sb.append("Cannot add the key '");
- sb.append(listName);
- sb.append("' with the value '");
- sb.append(listMembers);
- sb.append("' to the JSONObject 'configJSONObject' '");
- sb.append(configJSONObject);
- sb.append("': ");
- sb.append(getFullStackTrace(error));
- throw new AlfrescoRuntimeException(sb.toString());
+ obj.put(listName, listMembers);
}
}
-
- return configJSONObject.toString();
+ catch (JSONException je)
+ {
+ throw new AlfrescoRuntimeException("Invalid caveat config syntax: "+ je);
+ }
+ return obj.toString();
}
/**
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigServiceImpl.java
index b3e201d098..b4c4c76fb6 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/caveat/RMCaveatConfigServiceImpl.java
@@ -30,7 +30,6 @@ import java.util.UUID;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.module.org_alfresco_module_rm.admin.RecordsManagementAdminService;
import org.alfresco.module.org_alfresco_module_rm.caveat.RMListOfValuesConstraint.MatchLogic;
-import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementCustomModel;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.service.cmr.dictionary.Constraint;
@@ -131,14 +130,11 @@ public class RMCaveatConfigServiceImpl implements RMCaveatConfigService
public RMConstraintInfo addRMConstraint(String listName, String title, String[] values, MatchLogic matchLogic)
{
- if (listName == null)
+ if(listName == null)
{
// Generate a list name
- StringBuilder sb = new StringBuilder();
- sb.append(RecordsManagementCustomModel.RM_CUSTOM_PREFIX);
- sb.append(QName.NAMESPACE_PREFIX);
- sb.append(UUID.randomUUID().toString());
- listName = sb.toString();
+ // FIXME: hardcoded namespace
+ listName = "rmc:" + UUID.randomUUID().toString();
}
ListallowedValues = new ArrayList();
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java
index 54ce6c8c74..28c32fe0cb 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/dataset/DataSetServiceImpl.java
@@ -386,7 +386,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
}
// Make sure all the containers do not inherit permissions
- ResultSet rs = searchService.query(SPACES_STORE, SearchService.LANGUAGE_FTS_ALFRESCO,
+ ResultSet rs = searchService.query(SPACES_STORE, SearchService.LANGUAGE_LUCENE,
"TYPE:\"rma:recordsManagementContainer\"");
try
{
@@ -412,7 +412,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
// fix up the test dataset to fire initial events for
// disposition
// schedules
- rs = searchService.query(SPACES_STORE, SearchService.LANGUAGE_FTS_ALFRESCO, "TYPE:\"rma:recordFolder\"");
+ rs = searchService.query(SPACES_STORE, SearchService.LANGUAGE_LUCENE, "TYPE:\"rma:recordFolder\"");
try
{
logger.info("Bootstraping " + rs.length() + " record folders ...");
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java
index 05b994a87b..3883e7a097 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java
@@ -969,7 +969,7 @@ public class DispositionServiceImpl extends ServiceBaseImpl
* @see org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService#cutoffDisposableItem(NodeRef)
*/
@Override
- public void cutoffDisposableItem(final NodeRef nodeRef)
+ public void cutoffDisposableItem(NodeRef nodeRef)
{
ParameterCheck.mandatory("nodeRef", nodeRef);
@@ -1001,21 +1001,9 @@ public class DispositionServiceImpl extends ServiceBaseImpl
if (recordFolderService.isRecordFolder(nodeRef) &&
!recordFolderService.isRecordFolderClosed(nodeRef))
{
- // runAs system so that we can close a record that has already been cutoff
- authenticationUtil.runAsSystem(new RunAsWork()
- {
- public Void doWork() throws Exception
- {
- recordFolderService.closeRecordFolder(nodeRef);
- return null;
- }
- });
+ recordFolderService.closeRecordFolder(nodeRef);
}
}
- else
- {
- throw new AlfrescoRuntimeException("unable to perform cutoff, because node is frozen or has frozen children");
- }
}
else
{
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/OnReferencedRecordActionedUpon.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/OnReferencedRecordActionedUpon.java
index 37f039aeb2..5d3e04ece1 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/OnReferencedRecordActionedUpon.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/OnReferencedRecordActionedUpon.java
@@ -24,9 +24,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies.BeforeRMActionExecution;
import org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementActionService;
import org.alfresco.module.org_alfresco_module_rm.action.impl.CompleteEventAction;
+import org.alfresco.module.org_alfresco_module_rm.admin.RecordsManagementAdminService;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
@@ -51,8 +51,7 @@ import org.alfresco.service.namespace.RegexQNamePattern;
*/
@BehaviourBean
public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEventTypeImpl
- implements RecordsManagementModel,
- BeforeRMActionExecution
+ implements RecordsManagementModel
{
/** Disposition service */
@@ -61,6 +60,9 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
/** Records management action service */
private RecordsManagementActionService recordsManagementActionService;
+ /** Records management admin service */
+ private RecordsManagementAdminService recordsManagementAdminService;
+
/** Node service */
private NodeService nodeService;
@@ -92,6 +94,14 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
this.recordsManagementActionService = recordsManagementActionService;
}
+ /**
+ * @param recordsManagementAdminService record management admin service
+ */
+ public void setRecordsManagementAdminService(RecordsManagementAdminService recordsManagementAdminService)
+ {
+ this.recordsManagementAdminService = recordsManagementAdminService;
+ }
+
/**
* @param nodeService node service
*/
@@ -148,14 +158,13 @@ public class OnReferencedRecordActionedUpon extends SimpleRecordsManagementEvent
* @param name
* @param parameters
*/
- @Override
@Behaviour
(
kind = BehaviourKind.CLASS,
type = "rma:filePlanComponent",
notificationFrequency = NotificationFrequency.FIRST_EVENT
)
- public void beforeRMActionExecution(final NodeRef nodeRef, final String name, final Map parameters)
+ public void beforeActionExecution(final NodeRef nodeRef, final String name, final Map parameters)
{
AuthenticationUtil.RunAsWork