From: Wolfgang M. M. <wol...@us...> - 2006-01-04 22:48:57
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/xmldb In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5398/src/org/exist/xquery/functions/xmldb Modified Files: XMLDBUserAccess.java XMLDBIsAdmin.java Log Message: Improve performance of user group lookups. Index: XMLDBUserAccess.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBUserAccess.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XMLDBUserAccess.java 13 Nov 2005 09:11:07 -0000 1.2 --- XMLDBUserAccess.java 4 Jan 2006 22:48:50 -0000 1.3 *************** *** 27,32 **** package org.exist.xquery.functions.xmldb; - import java.util.Iterator; - import org.exist.dom.QName; import org.exist.security.User; --- 27,30 ---- *************** *** 115,121 **** if(isCalledAs("get-user-groups")) { ValueSequence groups = new ValueSequence(); ! for (Iterator i = user.getGroups(); i.hasNext(); ) { ! String group = (String) i.next(); ! groups.add(new StringValue(group)); } return groups; --- 113,119 ---- if(isCalledAs("get-user-groups")) { ValueSequence groups = new ValueSequence(); ! String[] gl = user.getGroups(); ! for (int i = 0; i < gl.length; i++) { ! groups.add(new StringValue(gl[i])); } return groups; Index: XMLDBIsAdmin.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/xmldb/XMLDBIsAdmin.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XMLDBIsAdmin.java 13 Nov 2005 09:11:07 -0000 1.2 --- XMLDBIsAdmin.java 4 Jan 2006 22:48:50 -0000 1.3 *************** *** 24,28 **** import org.exist.dom.QName; - import org.exist.security.SecurityManager; import org.exist.security.User; import org.exist.storage.DBBroker; --- 24,27 ---- *************** *** 73,77 **** if(user == null) return Sequence.EMPTY_SEQUENCE; ! return user.hasGroup(SecurityManager.DBA_GROUP) ? BooleanValue.TRUE : BooleanValue.FALSE; } catch (XMLDBException xe) { throw new XPathException(getASTNode(), "Failed to access user " + userName, xe); --- 72,76 ---- if(user == null) return Sequence.EMPTY_SEQUENCE; ! return user.hasDbaRole() ? BooleanValue.TRUE : BooleanValue.FALSE; } catch (XMLDBException xe) { throw new XPathException(getASTNode(), "Failed to access user " + userName, xe); |