tdraier 2005/10/28 15:04:05 CEST
Modified files:
core/src/java/org/jahia/data/viewhelper/sitemap
SiteMapViewHelper.java
WorkflowSiteMapViewHelper.java
core/src/java/org/jahia/engines/workflow
AdvancedWorkflowEngine.java
core/src/java/org/jahia/services/workflow WorkflowService.java
Log:
fix workflow rights
Revision Changes Path
1.11 +4 -0
jahia/core/src/java/org/jahia/data/viewhelper/sitemap/SiteMapViewHelper.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/SiteMapViewHelper.java.diff?r1=1.10&r2=1.11&f=h
1.10 +11 -9
jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java.diff?r1=1.9&r2=1.10&f=h
1.23 +5 -5
jahia/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.java.diff?r1=1.22&r2=1.23&f=h
1.30 +17 -3
jahia/core/src/java/org/jahia/services/workflow/WorkflowService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/workflow/WorkflowService.java.diff?r1=1.29&r2=1.30&f=h
Index: SiteMapViewHelper.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/SiteMapViewHelper.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SiteMapViewHelper.java 23 Sep 2005 10:14:16 -0000 1.10
+++ SiteMapViewHelper.java 28 Oct 2005 13:04:04 -0000 1.11
@@ -378,6 +378,10 @@
private String _languageCode;
private boolean _directPageOnly = true;
+ public JahiaUser getUser() {
+ return _user;
+ }
+
// Available language code storage.
private HashMap _availableLanguageCodeMap = new HashMap();
Index: WorkflowSiteMapViewHelper.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- WorkflowSiteMapViewHelper.java 5 Oct 2005 10:50:12 -0000 1.9
+++ WorkflowSiteMapViewHelper.java 28 Oct 2005 13:04:04 -0000 1.10
@@ -22,10 +22,10 @@
* Time: 18:35:55
* <p/>
* $Author: tdraier $
- * $Date: 2005/10/05 10:50:12 $
- * $Id: WorkflowSiteMapViewHelper.java,v 1.9 2005/10/05 10:50:12 tdraier Exp
$
+ * $Date: 2005/10/28 13:04:04 $
+ * $Id: WorkflowSiteMapViewHelper.java,v 1.10 2005/10/28 13:04:04 tdraier
Exp $
* $RCSfile: WorkflowSiteMapViewHelper.java,v $
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
* $Source:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/viewhelper/sitemap/WorkflowSiteMapViewHelper.java,v
$
* $State: Exp $
*/
@@ -78,11 +78,13 @@
final Iterator iterator2 = fieldsHere.iterator();
while ( iterator2.hasNext() ) {
ContentObject contentObject = (ContentObject)
iterator2.next();
- if (!(contentObject instanceof ContentPage)) {
- ContentObject main =
instance.getMainLinkObject(contentObject);
- v.add(main);
- } else {
- v.add(contentObject);
+ if (contentObject.checkWriteAccess(getUser())) {
+ if (!(contentObject instanceof ContentPage)) {
+ ContentObject main =
instance.getMainLinkObject(contentObject);
+ v.add(main);
+ } else {
+ v.add(contentObject);
+ }
}
}
return v.iterator();
Index: AdvancedWorkflowEngine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- AdvancedWorkflowEngine.java 29 Sep 2005 15:01:58 -0000 1.22
+++ AdvancedWorkflowEngine.java 28 Oct 2005 13:04:04 -0000 1.23
@@ -378,7 +378,7 @@
if (mode == WorkflowService.INACTIVE) {
if (!isActiveState) {
- if
(jParams.getPage().checkWriteAccess(jParams.getUser())) {
+ if (object.checkWriteAccess(jParams.getUser())) {
availableOptions.add( new
ActionEntry(approvePendingPages,
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
jahiaWorkflow,
@@ -388,7 +388,7 @@
}
} else if (mode == WorkflowService.JAHIA_INTERNAL) {
if (isWaitingState) {
- if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
+ if (object.checkAdminAccess(jParams.getUser())) {
availableOptions.add(new
ActionEntry(approvePendingPages,
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
jahiaWorkflow,
@@ -401,14 +401,14 @@
REFUSE));
}
} else if (isStagingState) {
- if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
+ if (object.checkAdminAccess(jParams.getUser())) {
availableOptions.add( new
ActionEntry(approvePendingPages,
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
jahiaWorkflow,
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
ACCEPT));
}
- if
(jParams.getPage().checkWriteAccess(jParams.getUser())) {
+ if (object.checkWriteAccess(jParams.getUser())) {
availableOptions.add(new
ActionEntry(notifyCompletedPages,
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.NotifyCompletedPages.label",
jParams, jParams.getLocale()),
jahiaWorkflow,
@@ -422,7 +422,7 @@
final boolean processStarted =
workflow.isProcessStarted(processId, object.getObjectKey().toString(),
languageCode);
if (!isActiveState || processStarted) {
- if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
+ if
(jParams.getUser().isAdminMember(jParams.getSiteID())) {
availableOptions.add( new
ActionEntry(approvePendingPages,
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
jahiaWorkflow,
Index: WorkflowService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/workflow/WorkflowService.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- WorkflowService.java 11 Oct 2005 14:19:26 -0000 1.29
+++ WorkflowService.java 28 Oct 2005 13:04:05 -0000 1.30
@@ -2,6 +2,7 @@
import org.jahia.content.ContentFieldKey;
import org.jahia.content.ContentObject;
+import org.jahia.content.ObjectKey;
import org.jahia.content.events.ContentActivationEvent;
import org.jahia.exceptions.JahiaException;
import org.jahia.exceptions.JahiaInitializationException;
@@ -671,7 +672,8 @@
final Iterator iterator = objects.iterator();
while (iterator.hasNext()) {
final ContentObject contentObject = (ContentObject)
iterator.next();
- if (
contentObject.getObjectKey().getType().equals(ContentFieldKey.FIELD_TYPE) ) {
+ ObjectKey objectKey = contentObject.getObjectKey();
+ if ( objectKey.getType().equals(ContentFieldKey.FIELD_TYPE) ) {
final ContentObject parent = contentObject.getParent(null);
if (parent != null && parent.getClass() ==
ContentContainer.class) {
// Contentfields will be checked by the parent
ContentContainer
@@ -728,8 +730,20 @@
for (Iterator iterator = objects.iterator(); iterator.hasNext();) {
ContentObject contentObject = (ContentObject) iterator.next();
if (!contentObject.getStagingLanguages(false,true).isEmpty()) {
- boolean versioningActive =
jParams.getSite().isVersioningEnabled();
-
activationResults.merge(contentObject.activate(languageCodes, versioningActive,
saveVersion, jParams.getUser(), jParams, stateModifContext));
+ if (!contentObject.checkAdminAccess(jParams.getUser())) {
+ try {
+ activationResults.appendError (
+ new IsValidForActivationResults
(contentObject.getObjectKey().getType(),
+
Integer.parseInt(contentObject.getObjectKey().getIDInType()),ContentField.SHARED_LANGUAGE,
+ "Cannot validate, you should have
admin rights"));
+ } catch (ClassNotFoundException cnfe) {
+ logger.debug ("Error while creating activation test
node result",
+ cnfe);
+ }
+ } else {
+ boolean versioningActive =
jParams.getSite().isVersioningEnabled();
+
activationResults.merge(contentObject.activate(languageCodes, versioningActive,
saveVersion, jParams.getUser(), jParams, stateModifContext));
+ }
}
cache.flushGroup(WORKFLOWSERVICESITE_KEYPREFIX+object.getSiteID());
}