Update of
/var/cvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow
In directory
james.mmbase.org:/tmp/cvs-serv5870/workflow/src/java/com/finalist/cmsc/workflow
Modified Files:
LinkWorkflow.java PageWorkflow.java WorkflowManager.java
ContentWorkflow.java
Log Message:
CMSC-970 A content element does not add a workflow item to the 2nd user who
edits a element
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow
See also: http://www.mmbase.org/jira/browse/CMSC-970
Index: LinkWorkflow.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow/LinkWorkflow.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- LinkWorkflow.java 25 Jul 2008 15:54:54 -0000 1.11
+++ LinkWorkflow.java 8 Aug 2008 13:44:01 -0000 1.12
@@ -189,4 +189,9 @@
return RepositoryUtil.getRole(node.getCloud(), channel, false);
}
+ @Override
+ public void addUserToWorkflow(Node node) {
+ addUserToWorkflow(node, TYPE_LINK);
+ }
+
}
Index: PageWorkflow.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow/PageWorkflow.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- PageWorkflow.java 25 Jul 2008 15:54:54 -0000 1.9
+++ PageWorkflow.java 8 Aug 2008 13:44:01 -0000 1.10
@@ -167,7 +167,6 @@
return hasWorkflow(node, TYPE_PAGE);
}
-
@Override
protected Node getWorkflowNode(Node node) {
return getWorkflowNode(node, TYPE_PAGE);
@@ -229,4 +228,11 @@
return NavigationUtil.getRole(node.getCloud(), page, false);
}
+
+ @Override
+ public void addUserToWorkflow(Node node) {
+ addUserToWorkflow(node, TYPE_PAGE);
+ }
+
+
}
Index: WorkflowManager.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow/WorkflowManager.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- WorkflowManager.java 25 Jul 2008 15:54:54 -0000 1.14
+++ WorkflowManager.java 8 Aug 2008 13:44:01 -0000 1.15
@@ -101,6 +101,26 @@
return !list.isEmpty();
}
+ protected void addUserToWorkflow(Node node, String type) {
+ Node user = SecurityUtil.getUserNode(cloud);
+
+ NodeList items = getWorkflows(node, type);
+ for (Iterator<Node> iterator = items.iterator(); iterator.hasNext();) {
+ Node workflowItem = iterator.next();
+ NodeList assignedUsers = getAssignedUsers(workflowItem);
+ boolean found = false;
+ for (Iterator<Node> iterator2 = assignedUsers.iterator();
iterator2.hasNext();) {
+ Node assignedUser = iterator2.next();
+ if (user.getNumber() == assignedUser.getNumber()) {
+ found = true;
+ }
+ }
+ if (!found) {
+ relateToUser(workflowItem, user);
+ }
+ }
+ }
+
public abstract boolean isWorkflowElement(Node node, boolean
isWorkflowItem);
@@ -108,6 +128,8 @@
protected abstract List<Node> getUsersWithRights(Node channel, Role role);
+ public abstract void addUserToWorkflow(Node node);
+
/**
* Is the user allowed to approve the node
*
@@ -278,8 +300,7 @@
changeWorkflow(wfItem, status, remark);
Node user = SecurityUtil.getUserNode(cloud);
- RelationManager assignedrel =
cloud.getRelationManager(WORKFLOW_MANAGER_NAME, SecurityUtil.USER, ASSIGNEDREL);
- wfItem.createRelation(user, assignedrel).commit();
+ relateToUser(wfItem, user);
RelationManager creatorrel =
cloud.getRelationManager(WORKFLOW_MANAGER_NAME, SecurityUtil.USER, CREATORREL);
wfItem.createRelation(user, creatorrel).commit();
@@ -471,6 +492,8 @@
}
+
+
protected void removeRelationsToUsers(Node workflowItem) {
workflowItem.deleteRelations(ASSIGNEDREL);
}
@@ -485,6 +508,17 @@
}
+ private void relateToUser(Node workflowItem, Node user) {
+ RelationManager manager =
cloud.getRelationManager(WORKFLOW_MANAGER_NAME, SecurityUtil.USER, ASSIGNEDREL);
+ workflowItem.createRelation(user, manager).commit();
+ }
+
+
+ protected NodeList getAssignedUsers(Node workflowItem) {
+ return workflowItem.getRelatedNodes(SecurityUtil.USER, ASSIGNEDREL,
DESTINATION);
+ }
+
+
public static boolean isWorkflowItem(Node node) {
return WORKFLOW_MANAGER_NAME.equals(node.getNodeManager().getName());
}
@@ -552,4 +586,5 @@
return clone;
}
+
}
\ No newline at end of file
Index: ContentWorkflow.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow/ContentWorkflow.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- ContentWorkflow.java 25 Jul 2008 15:54:54 -0000 1.8
+++ ContentWorkflow.java 8 Aug 2008 13:44:01 -0000 1.9
@@ -191,4 +191,9 @@
return RepositoryUtil.getRole(node.getCloud(), creationNode, false);
}
+ @Override
+ public void addUserToWorkflow(Node node) {
+ addUserToWorkflow(node, TYPE_CONTENT);
+ }
+
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs