From ba98a48c1fb7ef2c1696e9b1ba54ec670a23a02c Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Fri, 12 Oct 2012 10:29:29 +0000 Subject: [PATCH] Merged modules/recordsmanagement/BRANCHES/V2.0-BUG-FIX to modules/recordsmanagement/BRANCHES/V2.0 42527: RM-240 (In the RM Console: Can add two events of the same name) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/V2.0@42569 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rm-service-context.xml | 1 + .../event/RecordsManagementEventService.java | 8 ++++++++ .../RecordsManagementEventServiceImpl.java | 18 ++++++++++++++++++ .../script/admin/RmEventPut.java | 6 ++++++ .../script/admin/RmEventsPost.java | 6 ++++++ 5 files changed, 39 insertions(+) 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 2711f6edbd..2594e8fe8f 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 @@ -606,6 +606,7 @@ org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService.addEvent=RM_ALLOW org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService.removeEvent=RM_ALLOW org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService.existsEvent=RM_ALLOW + org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService.existsEventDisplayLabel=RM_ALLOW org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService.*=RM_DENY ]]> diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java index 5e60e5b64e..a32ff9f879 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventService.java @@ -73,6 +73,14 @@ public interface RecordsManagementEventService */ boolean existsEvent(String eventName); + /** + * Indicates whether a particular event display label exists. Returns true if it does, false otherwise. + * + * @param eventDisplayLabel event display label + * @return true if event display label exists, false otherwise + */ + boolean existsEventDisplayLabel(String eventDisplayLabel); + /** * Add an event * diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java index b5084747d7..bc83fe244b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/event/RecordsManagementEventServiceImpl.java @@ -20,6 +20,7 @@ package org.alfresco.module.org_alfresco_module_rm.event; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -122,6 +123,23 @@ public class RecordsManagementEventServiceImpl implements RecordsManagementEvent return getEventMap().containsKey(eventName); } + /** + * @see org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService#existsEventDisplayLabel(java.lang.String) + */ + @SuppressWarnings("rawtypes") + public boolean existsEventDisplayLabel(String eventDisplayLabel) + { + for (Iterator iterator = getEventMap().values().iterator(); iterator.hasNext();) + { + RecordsManagementEvent recordsManagementEvent = (RecordsManagementEvent) iterator.next(); + if (recordsManagementEvent.getDisplayLabel().equalsIgnoreCase(eventDisplayLabel)) + { + return true; + } + } + return false; + } + /** * @see org.alfresco.module.org_alfresco_module_rm.event.RecordsManagementEventService#addEvent(java.lang.String, java.lang.String, java.lang.String) */ diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java index 8717870eea..1af46bd6e6 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventPut.java @@ -90,6 +90,12 @@ public class RmEventPut extends DeclarativeWebScript { throw new WebScriptException(Status.STATUS_BAD_REQUEST, "No event display label provided."); } + if (rmEventService.existsEventDisplayLabel(eventDisplayLabel)) + { + throw new WebScriptException(Status.STATUS_BAD_REQUEST, + "Cannot edit event. The event display label '" + + eventDisplayLabel + "' already exists."); + } String eventType = null; if (json.has("eventType") == true) diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventsPost.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventsPost.java index 02aad56389..5384764881 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventsPost.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/admin/RmEventsPost.java @@ -90,6 +90,12 @@ public class RmEventsPost extends DeclarativeWebScript { throw new WebScriptException(Status.STATUS_BAD_REQUEST, "No event display label provided."); } + if (rmEventService.existsEventDisplayLabel(eventDisplayLabel)) + { + throw new WebScriptException(Status.STATUS_BAD_REQUEST, + "Cannot create event. The event display label '" + + eventDisplayLabel + "' already exists."); + } String eventType = null; if (json.has("eventType") == true)