xlawrence    2005/08/17 10:41:48 CEST

  Modified files:
    core/src/java/org/jahia/data/beans ContainerBean.java 
                                       ContainerListBean.java 
                                       ContentBean.java 
                                       FieldBean.java 
                                       PageBean.java 
    core/src/java/org/jahia/gui HTMLToolBox.java 
  Log:
  Fixed bug:
  - Action menus were allways displayed to the user, even if he didn't have 
write access on the ContentObject. We now check when drawing the Action menu 
that the current logged user has write access. Problem introduced with AJAX 
action menus, which now are built in 2 steps (instead of 1). Rights have to be 
ckecked for these 2 steps...
  -added method "getACL() to the abstract class ContentBean and its subclasses.
  
  Revision  Changes    Path
  1.8       +2 -2      
jahia/core/src/java/org/jahia/data/beans/ContainerBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/ContainerBean.java.diff?r1=1.7&r2=1.8&f=h
  1.9       +2 -2      
jahia/core/src/java/org/jahia/data/beans/ContainerListBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/ContainerListBean.java.diff?r1=1.8&r2=1.9&f=h
  1.3       +4 -0      jahia/core/src/java/org/jahia/data/beans/ContentBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/ContentBean.java.diff?r1=1.2&r2=1.3&f=h
  1.9       +3 -8      jahia/core/src/java/org/jahia/data/beans/FieldBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/FieldBean.java.diff?r1=1.8&r2=1.9&f=h
  1.10      +6 -1      jahia/core/src/java/org/jahia/data/beans/PageBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/PageBean.java.diff?r1=1.9&r2=1.10&f=h
  1.17      +14 -1     jahia/core/src/java/org/jahia/gui/HTMLToolBox.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/gui/HTMLToolBox.java.diff?r1=1.16&r2=1.17&f=h
  
  
  
  Index: ContainerBean.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/ContainerBean.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ContainerBean.java        5 Aug 2005 13:46:05 -0000       1.7
  +++ ContainerBean.java        17 Aug 2005 08:41:47 -0000      1.8
  @@ -162,7 +162,7 @@
        * get a field value
        *
        * @param        fieldName       the field name
  -     * @exception    throws a critical jahia exception if field not found
  +     * @throws     a critical jahia exception if field not found
        */
       public Object getFieldValue( final String fieldName )
       throws JahiaException {
  @@ -176,7 +176,7 @@
        * @param fieldName
        * @param allowDiffVersionHighlight
        * @return
  -     * @exception    throws a critical jahia exception if field not found
  +     * @throws    a critical jahia exception if field not found
        */
       public Object getFieldValue( final String fieldName ,
               final boolean allowDiffVersionHighlight,
  
  
  
  Index: ContainerListBean.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/ContainerListBean.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ContainerListBean.java    5 Aug 2005 13:46:05 -0000       1.8
  +++ ContainerListBean.java    17 Aug 2005 08:41:47 -0000      1.9
  @@ -273,7 +273,7 @@
           return jahiaContainerList.getAclID();
       }
       
  -    public JahiaBaseACL getAcl() {
  +    public JahiaBaseACL getACL() {
           return jahiaContainerList.getACL();
       }
       
  @@ -339,7 +339,7 @@
           final HTMLToolBox htmlToolBox = new HTMLToolBox(guiBean, 
processingContext);
           completelyLocked = true;
           try {
  -            /** @todo FIXME we must still add lock check for all the actions 
*/
  +            /** todo FIXME we must still add lock check for all the actions 
*/
               final ContentContainerList theList = 
jahiaContainerList.getContentContainerList();
               String curURL = guiBean.drawAddContainerUrl(jahiaContainerList);
               String curLauncherURI = 
htmlToolBox.drawAddContainerLauncher(jahiaContainerList);
  
  
  
  Index: ContentBean.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/ContentBean.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ContentBean.java  5 Aug 2005 13:46:05 -0000       1.2
  +++ ContentBean.java  17 Aug 2005 08:41:47 -0000      1.3
  @@ -1,5 +1,7 @@
   package org.jahia.data.beans;
   
  +import org.jahia.services.acl.JahiaBaseACL;
  +
   import java.util.Map;
   
   /**
  @@ -37,4 +39,6 @@
       public abstract boolean isIndependantWorkflow();
       
       public abstract int getGroupWorkflowState();
  +
  +    public abstract JahiaBaseACL getACL();
   }
  \ No newline at end of file
  
  
  
  Index: FieldBean.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/FieldBean.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FieldBean.java    5 Aug 2005 13:46:05 -0000       1.8
  +++ FieldBean.java    17 Aug 2005 08:41:47 -0000      1.9
  @@ -124,8 +124,7 @@
               return null;
           }
           if (fieldObject.getClass() == JahiaPage.class) {
  -            final PageBean pageBean = new PageBean((JahiaPage)fieldObject, 
processingContext);
  -            return pageBean;
  +            return new PageBean((JahiaPage)fieldObject, processingContext);
           }
           return fieldObject;
       }
  @@ -314,9 +313,7 @@
                   final ContentPage parentContentPage = 
ContentPage.getPage(jahiaField.
                           getPageID());
                   final JahiaPage parentJahiaPage = 
parentContentPage.getPage(processingContext);
  -                final PageBean parentPageBean = new PageBean(parentJahiaPage,
  -                        processingContext);
  -                return parentPageBean;
  +                return new PageBean(parentJahiaPage, processingContext);
               } catch (JahiaException je) {
                   logger.error("Error while loading parent page " +
                           jahiaField.getPageID() + " for field " +
  @@ -329,9 +326,7 @@
               final ContentContainer parentContentContainer = ContentContainer.
                       getContainer(jahiaField.getctnid());
               final JahiaContainer parentJahiaContainer = 
parentContentContainer.getJahiaContainer(processingContext, 
processingContext.getEntryLoadRequest());
  -            final ContainerBean parentContainerBean = new ContainerBean(
  -                    parentJahiaContainer, processingContext);
  -            return parentContainerBean;
  +            return new ContainerBean(parentJahiaContainer, 
processingContext);
           } catch (JahiaException je) {
               logger.error("Error while loading parent container " + 
jahiaField.getctnid() + " for field " + jahiaField.getID(), je);
           }
  
  
  
  Index: PageBean.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/PageBean.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- PageBean.java     5 Aug 2005 13:46:05 -0000       1.9
  +++ PageBean.java     17 Aug 2005 08:41:47 -0000      1.10
  @@ -25,6 +25,7 @@
   import org.jahia.services.pages.JahiaPage;
   import org.jahia.services.pages.JahiaPageDefinition;
   import org.jahia.services.workflow.WorkflowService;
  +import org.jahia.services.acl.JahiaBaseACL;
   import org.jahia.utils.InsertionSortedMap;
   
   /**
  @@ -165,7 +166,7 @@
       }
       
       public Map getContainerLists() {
  -        /** @todo FIXME how to integrate filters and searching with this ?? 
*/
  +        /** todo FIXME how to integrate filters and searching with this ?? */
           if (getPageType() != JahiaPage.TYPE_DIRECT) {
               return null;
           }
  @@ -244,6 +245,10 @@
       public int getAclID() {
           return jahiaPage.getAclID();
       }
  +
  +    public JahiaBaseACL getACL() {
  +        return jahiaPage.getACL();
  +    }
       
       public int getCounter() {
           return jahiaPage.getCounter();
  
  
  
  Index: HTMLToolBox.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/gui/HTMLToolBox.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- HTMLToolBox.java  11 Aug 2005 12:39:15 -0000      1.16
  +++ HTMLToolBox.java  17 Aug 2005 08:41:48 -0000      1.17
  @@ -41,6 +41,8 @@
   import org.jahia.services.pages.ContentPage;
   import org.jahia.services.pages.JahiaPage;
   import org.jahia.services.pages.JahiaPageDefinition;
  +import org.jahia.services.acl.JahiaBaseACL;
  +import org.jahia.services.usermanager.JahiaUser;
   import org.jahia.bin.Jahia;
   
   import javax.servlet.jsp.JspWriter;
  @@ -1047,11 +1049,22 @@
               final String labelKey,
               final JspWriter out)
               throws IOException {
  -        
  +
           if (! ProcessingContext.EDIT.equals(jParams.getOperationMode())) {
               // if we are not in edit mode we don't display the GUI
               return;
           }
  +
  +        try {
  +            if (contentObject == null || ! 
contentObject.getACL().getPermission(
  +                    jParams.getUser(), JahiaBaseACL.WRITE_RIGHTS)) {
  +                // if the user doesn't have Write access on the object, 
don't display the GUI
  +                return;
  +            }
  +        } catch (JahiaException e) {
  +            logger.error("Error checking ACL when drawing Action Menu", e);
  +            return;
  +        }
           
           final String menuID = beginAjaxMenu(contentObject, actionIcon,
                   useFieldSet, resourceBundle, labelKey, out);
  

Reply via email to