knguyen     2005/03/04 16:32:15 CET

  Modified files:
    core/src/java/org/jahia/services/acl JahiaACL.java 
  Log:
  - Now a Guest user of a virtual site is recognized as a Guest user of all 
other Virtual site he is accessing.
   This is necessary to allow search on multiple virtual site and being a GUEST 
user ( not logging in ).
  
  Revision  Changes    Path
  1.7       +32 -1     jahia/core/src/java/org/jahia/services/acl/JahiaACL.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/acl/JahiaACL.java.diff?r1=1.6&r2=1.7&f=h
  
  
  
  Index: JahiaACL.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/acl/JahiaACL.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JahiaACL.java     28 Feb 2005 15:55:48 -0000      1.6
  +++ JahiaACL.java     4 Mar 2005 15:32:15 -0000       1.7
  @@ -22,6 +22,7 @@
   import org.jahia.services.usermanager.JahiaGroup;
   import org.jahia.services.usermanager.JahiaGroupManagerService;
   import org.jahia.services.usermanager.JahiaUser;
  +import org.jahia.services.usermanager.JahiaUserManagerService;
   
   import java.io.Serializable;
   import java.security.Principal;
  @@ -29,6 +30,8 @@
   import java.util.Enumeration;
   import java.util.Hashtable;
   import java.util.Vector;
  +import java.util.Iterator;
  +
   import org.jahia.params.ParamBean;
   import org.jahia.bin.Jahia;
   
  @@ -758,7 +761,35 @@
           int result = -1; // start as if the user was not found.
   
           //check if the user is in entries
  -        JahiaACLEntry entry = (JahiaACLEntry) table.get (user.getName ());
  +        JahiaACLEntry entry = null;
  +        if ( 
JahiaUserManagerService.GUEST_USERNAME.equals(user.getUsername()) ){
  +            Iterator iterator = table.keySet().iterator();
  +            String key = null;
  +            while ( iterator.hasNext() ){
  +                key = (String)iterator.next();
  +                if ( 
key.startsWith(JahiaUserManagerService.GUEST_USERNAME+":") ){
  +                    entry = (JahiaACLEntry) table.get (key);
  +                    if (entry != null) {
  +                        switch (entry.getPermission (permission)) {
  +                            case JahiaACLEntry.ACL_YES:
  +                                result = 1;
  +                                break;
  +
  +                            case JahiaACLEntry.ACL_NO:
  +                                result = 0;
  +                                break;
  +                        }
  +                    }
  +                    entry = null;
  +                    if ( result != -1 ) {
  +                        return result;
  +                    }
  +                }
  +            }
  +        }
  +
  +        //check if the user is in entries
  +        entry = (JahiaACLEntry) table.get (user.getName ());
           if (entry != null) {
               switch (entry.getPermission (permission)) {
                   case JahiaACLEntry.ACL_YES:
  

Reply via email to