[cvs] expresso commit by lhamel: optimize the search for permissions across

JCorporate Ltd jcorp at jcorp2.servlets.net
Tue Nov 30 23:25:04 PST 2004


Log Message:
-----------
optimize the search for permissions across groups

Modified Files:
--------------
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj:
        SecuredDBObject.java

Revision Data
-------------
Index: SecuredDBObject.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/SecuredDBObject.java,v
retrieving revision 1.55
retrieving revision 1.56
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/SecuredDBObject.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/SecuredDBObject.java -u -r1.55 -r1.56
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/SecuredDBObject.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/SecuredDBObject.java
@@ -443,7 +443,6 @@
                 }
             }
 
-            FastStringBuffer currentSecurity = new FastStringBuffer(16);
             ValidValue sec = null;
             if (cs != null) {
                 sec = (ValidValue) cs.getItem(CACHE_NAME,
@@ -484,6 +483,7 @@
                 DBObjSecurity oneSec = null;
                 String oneGroupName = null;
 
+                FastStringBuffer currentSecurity = new FastStringBuffer(6);
                 for (Enumeration e = groups.elements(); e.hasMoreElements();) {
                     oneGroupName = (String) e.nextElement();
 
@@ -511,6 +511,10 @@
                         /* if we already have the permission, don't add it again */
                         if (currentSecurity.toString().indexOf(newSec) < 0) {
                             currentSecurity.append(newSec);
+                            if ( currentSecurity.length() >= 4 ) {
+                                // we have all possible privileges; no need to loop further
+                                break;
+                            }
                         }
                     }
                 } /* for each group this user belongs to */


More information about the cvs mailing list