From c3f6caf87a2ba4ed79835fedf800fc5f9c02f549 Mon Sep 17 00:00:00 2001 From: jensp Date: Tue, 27 Jun 2017 13:42:15 +0000 Subject: [PATCH] CCM NG/ccm-cms: More work for Content Item edit. git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4820 8810af33-2d31-482b-a856-94f89814c4df --- .../arsdigita/cms/ui/workflow/AssignedTaskTable.java | 1 - .../cms/ui/workflow/WorkflowLockedComponentAccess.java | 2 +- .../resources/org/librecms/CmsResources.properties | 1 + .../resources/org/librecms/CmsResources_de.properties | 1 + .../resources/org/librecms/CmsResources_fr.properties | 1 + .../java/com/arsdigita/toolbox/ui/ComponentAccess.java | 10 ++++++++-- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java index fd768f819..f7e15afc2 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/AssignedTaskTable.java @@ -37,7 +37,6 @@ import org.libreccm.security.User; import org.libreccm.workflow.AssignableTask; import org.libreccm.workflow.AssignableTaskManager; import org.libreccm.workflow.AssignableTaskRepository; -import org.libreccm.workflow.WorkflowManager; import org.librecms.CmsConstants; import java.util.Optional; diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowLockedComponentAccess.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowLockedComponentAccess.java index 12aab2e14..35b6ac843 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowLockedComponentAccess.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowLockedComponentAccess.java @@ -24,7 +24,6 @@ import com.arsdigita.bebop.PageState; import org.librecms.contentsection.ContentItem; import com.arsdigita.cms.ItemSelectionModel; -import com.arsdigita.cms.dispatcher.Utilities; import com.arsdigita.toolbox.ui.ComponentAccess; import org.apache.logging.log4j.LogManager; @@ -63,6 +62,7 @@ public class WorkflowLockedComponentAccess extends ComponentAccess { * * @param component The component * @param check An access check + * @param itemModel */ public WorkflowLockedComponentAccess(final Component component, final String check, diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties index 11e81e28f..9dc5b9272 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties @@ -329,3 +329,4 @@ cms.ui.workflow.task.unlock=Unlock task cms.ui.workflow.task.user.add=Assign user cms.ui.workflow.task.locked_by=Locked by {0} cms.ui.workflow.task.locked_by_you=Locked by you +cms.ui.edit=Edit diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties index 86926ad24..55b6f46fc 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties @@ -326,3 +326,4 @@ cms.ui.workflow.task.unlock=Aufgabe freigeben cms.ui.workflow.task.user.add=Benutzer zuordnen cms.ui.workflow.task.locked_by=Reserviert durch {0} cms.ui.workflow.task.locked_by_you=Von Ihnen reserviert +cms.ui.edit=Bearbeiten diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties index 930c0928d..7b37e242d 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties @@ -285,3 +285,4 @@ cms.ui.workflow.task.unlock=Unlock task cms.ui.workflow.task.user.add=Assign user cms.ui.workflow.task.locked_by=Locked by {0} cms.ui.workflow.task.locked_by_you=Locked by you +cms.ui.edit=Edit diff --git a/ccm-core/src/main/java/com/arsdigita/toolbox/ui/ComponentAccess.java b/ccm-core/src/main/java/com/arsdigita/toolbox/ui/ComponentAccess.java index 958d8c2be..8f3cd76c2 100755 --- a/ccm-core/src/main/java/com/arsdigita/toolbox/ui/ComponentAccess.java +++ b/ccm-core/src/main/java/com/arsdigita/toolbox/ui/ComponentAccess.java @@ -29,6 +29,8 @@ import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.security.PermissionChecker; +import java.util.Collections; + /** *

* Wrapper class that registers access checks (actions) to a Bebop @@ -46,7 +48,7 @@ public class ComponentAccess { * @param component The component */ public ComponentAccess(final Component component) { - accessCheckList = new ArrayList(); + accessCheckList = new ArrayList<>(); this.component = component; } @@ -74,7 +76,7 @@ public class ComponentAccess { * @return The list of access checks */ public List getAccessCheckList() { - return accessCheckList; + return Collections.unmodifiableList(accessCheckList); } /** @@ -96,6 +98,10 @@ public class ComponentAccess { final PermissionChecker permissionChecker = cdiUtil.findBean( PermissionChecker.class); + if (accessCheckList.isEmpty()) { + return true; + } + final Optional canAccess = accessCheckList.stream() .map(accessCheck -> permissionChecker.isPermitted(accessCheck)) .reduce((result1, result2) -> result1 && result2);