From 85daa222517ae24e00a3ea520922ff27ef330c6e Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Thu, 4 Aug 2016 08:15:30 +1000 Subject: [PATCH 1/5] Add information to README file about outlook integration profile --- README.txt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/README.txt b/README.txt index 1ea55a44f5..d336eefc46 100644 --- a/README.txt +++ b/README.txt @@ -44,4 +44,19 @@ Updating License Headers: In order to refesh out of date license source headers run the following command: -mvn clean install -Dlicense.update.dryrun=false \ No newline at end of file + +mvn clean install -Dlicense.update.dryrun=false + + +Configuring Outlook Integration: +------------------------------- + +To download and run RM with the Outlook Integration AMPs installed on the repo and Share use the following commands: + + mvn clean install -Pstart-repo,outlook-integration + mvn clean install -Pstart-share,outlook-integration + +Follow these instructions install licence and Outlook plugin: + + - http://docs.alfresco.com/outlook2.1/tasks/Outlook-license.html + - http://docs.alfresco.com/outlook2.1/tasks/Outlook-install_v2.html From 425e1d8d4c546dc78c84c624ef6c1d91a7a8be69 Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Thu, 4 Aug 2016 10:47:20 +1000 Subject: [PATCH 2/5] MNT-16535: non admin users can't file email records via outlook integration --- .../permission/RecordsManagementPermissionPostProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/permission/RecordsManagementPermissionPostProcessor.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/permission/RecordsManagementPermissionPostProcessor.java index e1c0dc8693..3a3c10894b 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/permission/RecordsManagementPermissionPostProcessor.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/permission/RecordsManagementPermissionPostProcessor.java @@ -68,7 +68,7 @@ public class RecordsManagementPermissionPostProcessor extends PermissionPostProc result = permissionService.hasPermission(nodeRef, RMPermissionModel.READ_RECORDS); } // if write deinied on rm artificat - else if (PermissionService.WRITE.equals(perm)) + else if (PermissionService.WRITE.equals(perm) || PermissionService.ADD_CHILDREN.equals(perm)) { // check for file record result = permissionService.hasPermission(nodeRef, RMPermissionModel.FILE_RECORDS); From 649cb7fc3f8fdad431d451d53f570c73f2c55ef0 Mon Sep 17 00:00:00 2001 From: Roxana Lucanu-Ghetu Date: Fri, 3 Jun 2016 11:10:18 +0300 Subject: [PATCH 3/5] Added check to allow creating only records inside a record folder. --- .../model/rma/type/RecordFolderType.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java index 6c3aaafc87..668bf2aa73 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java @@ -31,6 +31,7 @@ import java.io.Serializable; import java.util.Map; import org.alfresco.error.AlfrescoRuntimeException; +import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.model.behaviour.AbstractDisposableItem; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService; @@ -211,12 +212,18 @@ public class RecordFolderType extends AbstractDisposableItem public void onCreateChildAssociation(ChildAssociationRef childAssocRef, boolean bNew) { NodeRef nodeRef = childAssocRef.getChildRef(); - if (nodeService.exists(nodeRef) && instanceOf(nodeRef, TYPE_RECORD_FOLDER)) + + if (nodeService.exists(nodeRef)) { + // only records can be added in a record folder + if (!instanceOf(nodeRef, ContentModel.TYPE_CONTENT)) + { + throw new AlfrescoRuntimeException("Operation failed, because you can only place content into a record folder."); + } // ensure nothing is being added to a closed record folder NodeRef recordFolder = childAssocRef.getParentRef(); Boolean isClosed = (Boolean) nodeService.getProperty(recordFolder, PROP_IS_CLOSED); - if (isClosed != null && Boolean.TRUE.equals(isClosed)) + if (isClosed != null && isClosed) { throw new AlfrescoRuntimeException("You can't add new items to a closed record folder."); } From 32bd60328feaa7194c91c733cec675e6f5351d71 Mon Sep 17 00:00:00 2001 From: Roxana Lucanu-Ghetu Date: Mon, 6 Jun 2016 10:25:46 +0300 Subject: [PATCH 4/5] Moved check for content to be done on commit. --- .../model/rma/type/RecordFolderType.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java index 668bf2aa73..7d2aff1e47 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java @@ -215,11 +215,6 @@ public class RecordFolderType extends AbstractDisposableItem if (nodeService.exists(nodeRef)) { - // only records can be added in a record folder - if (!instanceOf(nodeRef, ContentModel.TYPE_CONTENT)) - { - throw new AlfrescoRuntimeException("Operation failed, because you can only place content into a record folder."); - } // ensure nothing is being added to a closed record folder NodeRef recordFolder = childAssocRef.getParentRef(); Boolean isClosed = (Boolean) nodeService.getProperty(recordFolder, PROP_IS_CLOSED); @@ -245,6 +240,12 @@ public class RecordFolderType extends AbstractDisposableItem { final NodeRef recordFolder = childAssocRef.getChildRef(); + // only records can be added in a record folder or hidden folders(is the case of e-mail attachments) + if (!instanceOf(recordFolder, ContentModel.TYPE_CONTENT) && !nodeService.hasAspect(recordFolder, ContentModel.ASPECT_HIDDEN)) + { + throw new AlfrescoRuntimeException("Operation failed, because you can only place content into a record folder."); + } + behaviourFilter.disableBehaviour(); try { From c0c0c225c0e13a25bf144e682781b259e665f4be Mon Sep 17 00:00:00 2001 From: Roxana Lucanu-Ghetu Date: Fri, 17 Jun 2016 12:05:19 +0300 Subject: [PATCH 5/5] Created a property for AlfrescoRuntimeException instead ot the message. --- .../messages/action-service.properties | 3 ++- .../model/rma/type/RecordFolderType.java | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/action-service.properties b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/action-service.properties index 5c6a7d4daf..dbb53e0559 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/action-service.properties +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/action-service.properties @@ -36,4 +36,5 @@ rm.action.records_only_undeclared=Only records can be completed. rm.action.event-not-undone=The event {0} can't be undone, because it's not defined on the disposition lifecycle. rm.action.node-not-record-category=The disposition schedule could not be created, because the actioned upon node ({0}) was not a record category. rm.action.parameter-not-supplied=The parameter ''{0}'' has not been supplied. -rm.action.delete-not-hold-type=The hold couldn't be deleted, because the node isn't of type {0}. (actionedUponNodeRef={1}) \ No newline at end of file +rm.action.delete-not-hold-type=The hold couldn't be deleted, because the node isn't of type {0}. (actionedUponNodeRef={1}) +rm.action.record-folder-create=Operation failed, because you can't place a record folder into another record folder. diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java index 7d2aff1e47..5974c922a6 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordFolderType.java @@ -50,6 +50,7 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; import org.apache.commons.lang.ArrayUtils; +import org.springframework.extensions.surf.util.I18NUtil; /** * rma:recordFolder behaviour bean @@ -74,6 +75,9 @@ public class RecordFolderType extends AbstractDisposableItem /** vital record service */ protected VitalRecordService vitalRecordService; + /** I18N */ + private static final String MSG_CANNOT_CREATE_RECORD_FOLDER = "rm.action.record-folder-create"; + /** * @param recordService record service */ @@ -243,7 +247,7 @@ public class RecordFolderType extends AbstractDisposableItem // only records can be added in a record folder or hidden folders(is the case of e-mail attachments) if (!instanceOf(recordFolder, ContentModel.TYPE_CONTENT) && !nodeService.hasAspect(recordFolder, ContentModel.ASPECT_HIDDEN)) { - throw new AlfrescoRuntimeException("Operation failed, because you can only place content into a record folder."); + throw new AlfrescoRuntimeException(I18NUtil.getMessage(MSG_CANNOT_CREATE_RECORD_FOLDER)); } behaviourFilter.disableBehaviour();