diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml
index a6ae91c265..c1e03ffe59 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml
@@ -45,6 +45,7 @@
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
index 048cc35f4b..764b920c5b 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
@@ -501,10 +501,10 @@
-
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java
index 10d648b3b1..28942f6497 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java
@@ -450,7 +450,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
*/
public NodeRef createUnfiledContainer(NodeRef filePlan)
{
- return createFilePlanRootContainer(filePlan, TYPE_UNFILED_RECORD_CONTAINER, NAME_UNFILED_CONTAINER, false);
+ return createFilePlanRootContainer(filePlan, TYPE_UNFILED_RECORD_CONTAINER, NAME_UNFILED_CONTAINER);
}
/**
@@ -459,7 +459,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
@Override
public NodeRef createHoldContainer(NodeRef filePlan)
{
- return createFilePlanRootContainer(filePlan, TYPE_HOLD_CONTAINER, NAME_HOLD_CONTAINER, true);
+ return createFilePlanRootContainer(filePlan, TYPE_HOLD_CONTAINER, NAME_HOLD_CONTAINER);
}
/**
@@ -468,7 +468,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
@Override
public NodeRef createTransferContainer(NodeRef filePlan)
{
- return createFilePlanRootContainer(filePlan, TYPE_TRANSFER_CONTAINER, NAME_TRANSFER_CONTAINER, true);
+ return createFilePlanRootContainer(filePlan, TYPE_TRANSFER_CONTAINER, NAME_TRANSFER_CONTAINER);
}
/**
@@ -479,7 +479,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
* @param inheritPermissions
* @return
*/
- private NodeRef createFilePlanRootContainer(NodeRef filePlan, QName containerType, String containerName, boolean inheritPermissions)
+ private NodeRef createFilePlanRootContainer(NodeRef filePlan, QName containerType, String containerName)
{
ParameterCheck.mandatory("filePlan", filePlan);
if (isFilePlan(filePlan) == false)
@@ -502,23 +502,24 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
properties).getChildRef();
- if (inheritPermissions == false)
- {
+ // if (inheritPermissions == false)
+ // {
// set inheritance to false
getPermissionService().setInheritParentPermissions(container, false);
getPermissionService().setPermission(container, allRoles, RMPermissionModel.READ_RECORDS, true);
getPermissionService().setPermission(container, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.READ_RECORDS, true);
getPermissionService().setPermission(container, ExtendedWriterDynamicAuthority.EXTENDED_WRITER, RMPermissionModel.FILING, true);
+ getPermissionService().setPermission(container, "Administrator", RMPermissionModel.FILING, true);
// TODO set the admin users to have filing permissions on the unfiled container!!!
// TODO we will need to be able to get a list of the admin roles from the service
- }
- else
- {
+ // }
+ // else
+ // {
// just inherit eveything
// TODO will change this when we are able to set permissions on holds and transfers!
- getPermissionService().setInheritParentPermissions(container, true);
- }
+ // getPermissionService().setInheritParentPermissions(container, true);
+ // }
return container;
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/freeze/FreezeServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/freeze/FreezeServiceImpl.java
index a8ba156b74..045b66b72c 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/freeze/FreezeServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/freeze/FreezeServiceImpl.java
@@ -29,7 +29,6 @@ import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
-import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
@@ -161,7 +160,6 @@ public class FreezeServiceImpl extends ServiceBaseImpl
{
AuthenticationUtil.runAsSystem(new RunAsWork()
{
-
@Override
public Void doWork() throws Exception
{
@@ -616,20 +614,6 @@ public class FreezeServiceImpl extends ServiceBaseImpl
msg.append("Created hold object '").append(holdNodeRef).append("' with name '").append(holdQName).append("'.");
logger.debug(msg.toString());
}
-
- AuthenticationUtil.runAsSystem(new RunAsWork()
- {
- @Override
- public Void doWork() throws Exception
- {
- // set inherit to false
- permissionService.setInheritParentPermissions(holdNodeRef, false);
- String allGroup = filePlanRoleService.getAllRolesContainerGroup(root);
- permissionService.setPermission(holdNodeRef, allGroup, RMPermissionModel.FILING, true);
-
- return null;
- }
- });
// Bind the hold node reference to the transaction
AlfrescoTransactionSupport.bindResource(KEY_HOLD_NODEREF, holdNodeRef);
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java
index 50e545acfe..908500eabd 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/role/FilePlanRoleServiceImpl.java
@@ -23,9 +23,11 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -238,10 +240,12 @@ public class FilePlanRoleServiceImpl implements FilePlanRoleService,
if (nodeService.exists(rmRootNode) == true)
{
- NodeRef unfiledContainer = AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork()
+ List systemContainers = AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork>()
{
- public NodeRef doWork()
+ public List doWork()
{
+ List systemContainers = new ArrayList(3);
+
//In a multi tenant store we need to initialize the rm config if it has been done yet
NodeRef nodeRef = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, CONFIG_NODEID);
if (nodeService.exists(nodeRef) == false)
@@ -263,17 +267,18 @@ public class FilePlanRoleServiceImpl implements FilePlanRoleService,
permissionService.setPermission(rmRootNode, ExtendedWriterDynamicAuthority.EXTENDED_WRITER, RMPermissionModel.FILING, true);
// Create the transfer and hold containers
- // NOTE: don't need to worry about the admin permissions as for now we just inherit all
- filePlanService.createHoldContainer(rmRootNode);
- filePlanService.createTransferContainer(rmRootNode);
+ systemContainers.add(filePlanService.createHoldContainer(rmRootNode));
+ systemContainers.add(filePlanService.createTransferContainer(rmRootNode));
// Create the unfiled record container
- return filePlanService.createUnfiledContainer(rmRootNode);
+ systemContainers.add(filePlanService.createUnfiledContainer(rmRootNode));
+
+ return systemContainers;
}
}, AuthenticationUtil.getSystemUserName());
// Bootstrap in the default set of roles for the newly created root node
- bootstrapDefaultRoles(rmRootNode, unfiledContainer);
+ bootstrapDefaultRoles(rmRootNode, systemContainers);
}
}
@@ -324,7 +329,7 @@ public class FilePlanRoleServiceImpl implements FilePlanRoleService,
* @param rmRootNode
* @param unfiledContainer
*/
- private void bootstrapDefaultRoles(final NodeRef filePlan, final NodeRef unfiledContainer)
+ private void bootstrapDefaultRoles(final NodeRef filePlan, final List systemContainers)
{
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork