diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java index 8ad84a26d..2d3cba3db 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java @@ -243,6 +243,7 @@ public abstract class AbstractMvcAuthoringStep implements MvcAuthoringStep { ); final String docPath = Optional .ofNullable(documentPath) + .map(this::withoutLeadingSlash) .orElseThrow( () -> new WebApplicationException( String.format( @@ -377,4 +378,11 @@ public abstract class AbstractMvcAuthoringStep implements MvcAuthoringStep { .orElse(""); } + private String withoutLeadingSlash(final String path) { + if (path.startsWith("/")) { + return path.substring(1); + } else { + return path; + } + } } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/DocumentWorkflowController.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/DocumentWorkflowController.java index 7b7e0e10e..e972976d7 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/DocumentWorkflowController.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/DocumentWorkflowController.java @@ -128,7 +128,7 @@ public class DocumentWorkflowController { * @return A redirect to the {@code returnUrl}. */ @POST - @Path("/tasks/${taskIdentifier}/@lock") + @Path("/tasks/{taskIdentifier}/@lock") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) public String lockTask( @@ -185,7 +185,7 @@ public class DocumentWorkflowController { * @return A redirect to the {@code returnUrl}. */ @POST - @Path("/tasks/${taskIdentifier}/@unlock") + @Path("/tasks/{taskIdentifier}/@unlock") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) public String unlockTask( @@ -243,7 +243,7 @@ public class DocumentWorkflowController { * @return A redirect to the {@code returnUrl}. */ @POST - @Path("/tasks/${taskIdentifier}/@finish") + @Path("/tasks/{taskIdentifier}/@finish") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) public String finishTask( diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/SelectedDocumentModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/SelectedDocumentModel.java index f2788cbfe..04107922c 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/SelectedDocumentModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/SelectedDocumentModel.java @@ -298,6 +298,12 @@ public class SelectedDocumentModel { .orElse(false) ); entry.setLocked(task.isLocked()); + entry.setLockedByCurrentUser( + shiro + .getUser() + .map(user -> Objects.equals(user, task.getLockingUser())) + .orElse(false) + ); return entry; } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/TaskListEntry.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/TaskListEntry.java index 8946f77e1..ebcabd1cd 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/TaskListEntry.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/TaskListEntry.java @@ -69,6 +69,11 @@ public class TaskListEntry { * Is the task locked? */ private boolean locked; + + /** + * Is the task locked by the current user? + */ + private boolean lockedByCurrentUser; public String getTaskUuid() { return taskUuid; @@ -126,4 +131,14 @@ public class TaskListEntry { this.locked = locked; } + public boolean isLockedByCurrentUser() { + return lockedByCurrentUser; + } + + public void setLockedByCurrentUser(final boolean lockedByCurrentUser) { + this.lockedByCurrentUser = lockedByCurrentUser; + } + + + } diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml index 9a6177890..aaf8c8db7 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml @@ -45,59 +45,65 @@