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());
           }
  

Reply via email to