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: