[cvs] expresso commit by lhamel: deprecate User.getGroups() in
favor of
JCorporate Ltd
jcorp at jcorporate.com
Fri Dec 10 01:02:15 UTC 2004
Log Message:
-----------
deprecate User.getGroups() in favor of getGroupsList()
Modified Files:
--------------
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller:
DBController.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj:
SecuredDBObject.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/job:
Job.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security:
MapBasedUserInfo.java
User.java
UserInfo.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility:
DBToolTests.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller:
Download.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/dbobj:
SingleDBUserInfo.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap:
UserLDAP.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/xml/dbobj:
ControllerXSLMap.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller:
ErrorHandler.java
QueueJob.java
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/dbobj:
DefaultUserInfo.java
Revision Data
-------------
Index: ControllerXSLMap.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/xml/dbobj/ControllerXSLMap.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/xml/dbobj/ControllerXSLMap.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/xml/dbobj/ControllerXSLMap.java -u -r1.14 -r1.15
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/xml/dbobj/ControllerXSLMap.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/xml/dbobj/ControllerXSLMap.java
@@ -77,8 +77,8 @@
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
-import java.util.Enumeration;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Vector;
@@ -221,7 +221,7 @@
//oneUser.retrieve();
oneUser.find();
- Vector groupList = oneUser.getGroups();
+ List groupList = oneUser.getGroupsList();
ControllerXSLMap oneMap = null;
ControllerXSLMap mapList = new ControllerXSLMap();
/* wlo: since we get the UserAgent id as parameter, we
@@ -237,8 +237,8 @@
String oneGroup = null;
- for (Enumeration eg = groupList.elements(); eg.hasMoreElements();) {
- oneGroup = (String) eg.nextElement();
+ for (Iterator iterator = groupList.iterator(); iterator.hasNext();) {
+ oneGroup = (String) iterator.next();
if (oneGroup.equals(oneMap.getField("GroupName"))) {
String controllerClass = oneMap.getField("ControllerClass");
@@ -300,7 +300,7 @@
throw new DBException("User not found: '" + userName + "'");
}
- Vector groupList = oneUser.getGroups();
+ List groupList = oneUser.getGroupsList();
ControllerXSLMap oneMap = null;
ControllerXSLMap mapList = new ControllerXSLMap();
mapList.setField("UserAgent", ua.getField("UserAgent"));
@@ -313,8 +313,8 @@
String oneGroup = null;
- for (Enumeration eg = groupList.elements(); eg.hasMoreElements();) {
- oneGroup = (String) eg.nextElement();
+ for (Iterator iterator = groupList.iterator(); iterator.hasNext();) {
+ oneGroup = (String) iterator.next();
if (oneGroup.equals(oneMap.getField("GroupName"))) {
String controllerClass = oneMap.getField("ControllerClass");
Index: QueueJob.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java -u -r1.17 -r1.18
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/QueueJob.java
@@ -99,6 +99,7 @@
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
+import java.util.List;
/**
@@ -483,12 +484,13 @@
myUser.setUid(uid);
myUser.retrieve();
- Vector myGroups = myUser.getGroups();
+ List myGroups = myUser.getGroupsList();
JobSecurity js = new JobSecurity();
js.setDataContext(params.getDataContext());
- for (Enumeration eg = myGroups.elements(); eg.hasMoreElements();) {
- js.setField("GroupName", (String) eg.nextElement());
+ for (Iterator iterator = myGroups.iterator(); iterator.hasNext();) {
+ String oneGroup = (String) iterator.next();
+ js.setField("GroupName", oneGroup);
js.setField("JobClass", jobClass);
if (js.find()) {
Index: ErrorHandler.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ErrorHandler.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ErrorHandler.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ErrorHandler.java -u -r1.15 -r1.16
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ErrorHandler.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ErrorHandler.java
@@ -261,7 +261,7 @@
}
EMailSender ems = new EMailSender();
- ems.setDBName(params.getDataContext());
+ ems.setDataContext(params.getDataContext());
ems.send(oneRecipient, getAttribString("message", params),
bigString.toString());
}
Index: DBController.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DBController.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DBController.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DBController.java -u -r1.37 -r1.38
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DBController.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/controller/DBController.java
@@ -85,9 +85,9 @@
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
+import java.util.List;
import java.util.Stack;
import java.util.StringTokenizer;
-import java.util.Vector;
/**
@@ -319,7 +319,7 @@
//Group the user's groups
- Vector usersGroups = thisUser.getGroups();
+ List usersGroups = thisUser.getGroupsList();
int groupSize = usersGroups.size();
//Precalc to save time
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.57
retrieving revision 1.58
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.57 -r1.58
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/SecuredDBObject.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dbobj/SecuredDBObject.java
@@ -83,9 +83,8 @@
import org.apache.log4j.Logger;
import java.util.ArrayList;
-import java.util.Enumeration;
import java.util.Iterator;
-import java.util.Vector;
+import java.util.List;
/**
@@ -463,7 +462,7 @@
u.setUid(uid);
u.retrieve();
- Vector groups = u.getGroups();
+ List groups = u.getGroupsList();
if (log.isDebugEnabled()) {
log.debug("User '" + u.getLoginName() +
@@ -490,8 +489,9 @@
String oneGroupName = null;
FastStringBuffer currentSecurity = new FastStringBuffer(6);
- for (Enumeration e = groups.elements(); e.hasMoreElements();) {
- oneGroupName = (String) e.nextElement();
+
+ for (Iterator iterator = groups.iterator(); iterator.hasNext();) {
+ oneGroupName = (String) iterator.next();
if (log.isDebugEnabled()) {
log.debug("User '" + u.getLoginName() +
Index: Job.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/job/Job.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/job/Job.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/job/Job.java -u -r1.34 -r1.35
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/job/Job.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/job/Job.java
@@ -478,7 +478,7 @@
oneRecipient = stk.nextToken();
EMailSender ems = new EMailSender();
- ems.setDBName(getDataContext());
+ ems.setDataContext(getDataContext());
ems.send(oneRecipient, subject, bigString);
}
} catch (Exception ie) {
Index: User.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/User.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/User.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/User.java -u -r1.50 -r1.51
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/User.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/User.java
@@ -499,7 +499,7 @@
/**
* Return a vector of the group names that this user belongs to
- *
+ * @deprecated 12/2004; v.5.6 use getGroupsList instead.
* @return Vector Group names that this user belongs to
* @throws DBException If an error occurs when the group info is read
*/
@@ -513,16 +513,14 @@
/**
* Return a List of the group names that this user belongs to
*
- * @return Vector Group names that this user belongs to
+ * @return List of Group names that this user belongs to
* @throws DBException If an error occurs when the group info is read
- * @todo Modify userInfo so that getGroupsList() is implemented so we
- * can deprecate getGroups();
*/
public List getGroupsList()
throws DBException {
UserInfo myInfo = getUserInfo();
- return new ArrayList(myInfo.getGroups());
+ return myInfo.getGroupsList();
}
/**
@@ -835,8 +833,8 @@
Hashtable allEvents = new Hashtable(1);
String oneGroupName = null;
- for (Enumeration gl = getGroups().elements(); gl.hasMoreElements();) {
- oneGroupName = (String) gl.nextElement();
+ for (Iterator iterator = getGroupsList().iterator(); iterator.hasNext();) {
+ oneGroupName = (String) iterator.next();
oneGroup.clear();
oneGroup.setField("GroupName", oneGroupName);
Index: MapBasedUserInfo.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/MapBasedUserInfo.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/MapBasedUserInfo.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/MapBasedUserInfo.java -u -r1.3 -r1.4
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/MapBasedUserInfo.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/MapBasedUserInfo.java
@@ -1,11 +1,13 @@
package com.jcorporate.expresso.core.security;
import com.jcorporate.expresso.core.db.DBException;
-import com.jcorporate.expresso.core.misc.ConfigManager;
import com.jcorporate.expresso.core.misc.Base64;
+import com.jcorporate.expresso.core.misc.ConfigManager;
+import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Vector;
@@ -224,6 +226,17 @@
public Vector getGroups()
throws DBException {
return new Vector();
+ }
+
+ /**
+ * Return a vector of the group names that this user belongs to
+ *
+ * @return Vector Group names that this user belongs to
+ * @throws com.jcorporate.expresso.core.db.DBException
+ * If an error occurs when the group info is read
+ */
+ public List getGroupsList() throws DBException {
+ return new ArrayList(0);
}
/**
Index: UserInfo.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/UserInfo.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/UserInfo.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/UserInfo.java -u -r1.19 -r1.20
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/UserInfo.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/security/UserInfo.java
@@ -68,6 +68,7 @@
import com.jcorporate.expresso.core.dbobj.LookupInterface;
import java.util.Vector;
+import java.util.List;
/**
@@ -162,8 +163,17 @@
*
* @return Vector Group names that this user belongs to
* @throws DBException If an error occurs when the group info is read
+ * @deprecated 12/2004; v.5.6 use getGroupsList instead.
*/
public Vector getGroups() throws DBException;
+
+ /**
+ * Return a vector of the group names that this user belongs to
+ *
+ * @return Vector Group names that this user belongs to
+ * @throws DBException If an error occurs when the group info is read
+ */
+ public List getGroupsList() throws DBException;
/**
* Returns the login name of this user
Index: DBToolTests.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/DBToolTests.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/DBToolTests.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/DBToolTests.java -u -r1.19 -r1.20
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/DBToolTests.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/DBToolTests.java
@@ -70,8 +70,10 @@
import com.jcorporate.expresso.core.dbobj.DBObject;
import com.jcorporate.expresso.core.dbobj.Schema;
import com.jcorporate.expresso.core.dbobj.SecuredDBObject;
+import com.jcorporate.expresso.ext.dbobj.SingleDBUserInfo;
import com.jcorporate.expresso.kernel.ConsoleInstallLog;
import com.jcorporate.expresso.kernel.InstallLog;
+import com.jcorporate.expresso.services.dbobj.DefaultUserInfo;
import com.jcorporate.expresso.services.dbobj.SchemaList;
import com.jcorporate.expresso.services.test.ExpressoTestCase;
import com.jcorporate.expresso.services.test.SchemaDeleter;
@@ -324,10 +326,8 @@
//is a known duplicate table. Under Normal Circumstances
//this should not be the case.
//
- if (oneObject.getClass().getName().equals(
- com.jcorporate.expresso.services.dbobj.DefaultUserInfo.class.getName()) ||
- oneObject.getClass().getName().equals(
- com.jcorporate.expresso.ext.dbobj.SingleDBUserInfo.class.getName())) {
+ if (oneObject.getClass().getName().equals(DefaultUserInfo.class.getName()) ||
+ oneObject.getClass().getName().equals( SingleDBUserInfo.class.getName())) {
} else {
fail("Table name: " +
oneObject.getJDBCMetaData().getTargetTable() +
Index: Download.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Download.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Download.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Download.java -u -r1.26 -r1.27
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Download.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/controller/Download.java
@@ -96,10 +96,9 @@
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
-import java.util.Enumeration;
import java.util.Iterator;
+import java.util.List;
import java.util.StringTokenizer;
-import java.util.Vector;
/**
@@ -648,15 +647,15 @@
DownloadFiles oneFile, User myUser)
throws DBException {
boolean foundGroupName = false;
- Vector groupList = myUser.getGroups();
+ List groupList = myUser.getGroupsList();
String allowedGroup = oneFile.getField("GroupName");
if (allowedGroup == null || allowedGroup.length() == 0) {
throw new DBException("No allowed download groups for this file");
}
/* now see if the user is allowed to get to that file */
- for (Enumeration e = groupList.elements(); e.hasMoreElements();) {
- String oneGroup = (String) e.nextElement();
+ for (Iterator iterator = groupList.iterator(); iterator.hasNext();) {
+ String oneGroup = (String) iterator.next();
if (oneGroup.equalsIgnoreCase(oneFile.getField("GroupName"))) {
foundGroupName = true;
Index: SingleDBUserInfo.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/dbobj/SingleDBUserInfo.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/dbobj/SingleDBUserInfo.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/dbobj/SingleDBUserInfo.java -u -r1.23 -r1.24
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/dbobj/SingleDBUserInfo.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/dbobj/SingleDBUserInfo.java
@@ -92,6 +92,9 @@
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Collections;
/**
@@ -381,6 +384,17 @@
return myGroups;
} /* getGroups() */
+ /**
+ * Return a vector of the group names that this user belongs to
+ *
+ * @return Vector Group names that this user belongs to
+ * @throws com.jcorporate.expresso.core.db.DBException
+ * If an error occurs when the group info is read
+ */
+ public List getGroupsList() throws DBException {
+ return Collections.unmodifiableList(getGroups());
+ }
+
public String getLoginName()
throws DBException {
@@ -539,7 +553,7 @@
try {
EMailSender ems = new EMailSender();
- ems.setDBName(getDataContext());
+ ems.setDataContext(getDataContext());
ems.send(sendToUser, subject, message);
} catch (Exception e) {
throw new DBException(myName +
@@ -862,7 +876,7 @@
try { // create some properties and get the default Session
EMailSender ems = new EMailSender();
- ems.setDBName(getDataContext());
+ ems.setDataContext(getDataContext());
ems.addFileAttachments(fileNames);
ems.send(sendToUser, subject, message);
} catch (Exception e) {
Index: UserLDAP.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java -u -r1.16 -r1.17
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/ldap/UserLDAP.java
@@ -70,13 +70,13 @@
import com.jcorporate.expresso.core.db.DBConnection;
import com.jcorporate.expresso.core.db.DBException;
+import com.jcorporate.expresso.core.misc.Base64;
import com.jcorporate.expresso.core.misc.ConfigManager;
import com.jcorporate.expresso.core.misc.ConfigurationException;
import com.jcorporate.expresso.core.misc.EMailSender;
import com.jcorporate.expresso.core.misc.StringUtil;
-import com.jcorporate.expresso.core.misc.Base64;
-import com.jcorporate.expresso.core.security.UserInfo;
import com.jcorporate.expresso.core.security.CryptoManager;
+import com.jcorporate.expresso.core.security.UserInfo;
import com.jcorporate.expresso.services.dbobj.DefaultUserInfo;
import com.jcorporate.expresso.services.dbobj.Setup;
import org.apache.log4j.Logger;
@@ -91,9 +91,11 @@
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
+import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
+import java.util.List;
import java.util.Vector;
@@ -114,7 +116,7 @@
*/
public class UserLDAP
implements UserInfo {
- private String dbName = "default";
+ private String dbName = DBConnection.DEFAULT_DB_CONTEXT_NAME;
/* Hashtable containing the environment for the JNDI call */
private Hashtable env = null;
@@ -297,7 +299,7 @@
Vector v = new Vector();
try {
- setDBName("default");
+ setDBName(DBConnection.DEFAULT_DB_CONTEXT_NAME);
NamingEnumeration results = ctx.search("o=" + ldapRoot,
"(uniquemember=" + name +
@@ -327,6 +329,17 @@
return v;
} /* getGroups() */
+ /**
+ * Return a vector of the group names that this user belongs to
+ *
+ * @return Vector Group names that this user belongs to
+ * @throws com.jcorporate.expresso.core.db.DBException
+ * If an error occurs when the group info is read
+ */
+ public List getGroupsList() throws DBException {
+ return Collections.unmodifiableList(getGroups());
+ }
+
public String getLoginName()
throws DBException {
@@ -347,7 +360,7 @@
public String getRegistrationDomain()
throws DBException {
- return "default";
+ return DBConnection.DEFAULT_DB_CONTEXT_NAME;
}
public String getRoot() {
@@ -385,7 +398,7 @@
try {
EMailSender ems = new EMailSender();
- ems.setDBName("default");
+ ems.setDataContext(DBConnection.DEFAULT_DB_CONTEXT_NAME);
ems.send(sendToUser, subject, message);
} catch (Exception e) {
throw new DBException(myName +
@@ -541,7 +554,7 @@
":UserName must be specified before retrieve");
}
try {
- setDBName("default");
+ setDBName(DBConnection.DEFAULT_DB_CONTEXT_NAME);
NamingEnumeration results = ctx.search("o=" + ldapRoot,
"(uid=" + userName + ")",
@@ -613,7 +626,7 @@
public void sendAuthEmail()
throws DBException {
try {
- String dbContext = "default";
+ String dbContext = DBConnection.DEFAULT_DB_CONTEXT_NAME;
String authURL = Setup.getValue(dbContext, "EmailValidateURL");
String emailAuthCode = getEmailAuthCode();
this.setEmailValCode(emailAuthCode);
@@ -715,7 +728,7 @@
throws DBException {
try {
String subject = "New Registration Complete - Welcome!";
- String dbContext = "default";
+ String dbContext = DBConnection.DEFAULT_DB_CONTEXT_NAME;
// We can't retrieve the passsword in plain text to transmit to the user
// So we just create and set a new passord and send that over.
Index: DefaultUserInfo.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/dbobj/DefaultUserInfo.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/dbobj/DefaultUserInfo.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/services/dbobj/DefaultUserInfo.java -u -r1.50 -r1.51
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/services/dbobj/DefaultUserInfo.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/services/dbobj/DefaultUserInfo.java
@@ -86,6 +86,7 @@
import com.jcorporate.expresso.core.security.CryptoManager;
import com.jcorporate.expresso.core.security.User;
import com.jcorporate.expresso.core.security.UserInfo;
+import com.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject;
import com.jcorporate.expresso.kernel.exception.ChainedException;
import com.jcorporate.expresso.kernel.util.FastStringBuffer;
import org.apache.log4j.Logger;
@@ -95,6 +96,10 @@
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.ArrayList;
/**
@@ -440,8 +445,87 @@
/**
- * Get the groups that below to this user
+ * Get the groups that this user is a member of.
*
+ * @return list of strings which are names of groups; never null. List is unmodifiable
+ * @throws DBException upon database access error
+ */
+ public List getGroupsList()
+ throws DBException {
+
+ //
+ //Attempt Cache retrieval first.
+ //
+ CacheSystem cs = CacheManager.getCacheSystem(this.getDataContext());
+ String cacheName = THIS_CLASS + ".groups";
+ String key = Integer.toString(this.getUid());
+ Cache cache = cs.getCache(cacheName);
+ if (cache == null) {
+ try {
+ cache = cs.createCache(cacheName, false, 200);
+ cs.addListener(cacheName, GroupMembers.class.getName());
+ } catch (CacheException ex) {
+ log.error("Error creating cache: " + cacheName);
+ }
+ }
+
+ if (cache != null) {
+ CachedObject c = (CachedObject) cache.getItem(key);
+ if (c != null) {
+ return Collections.unmodifiableList((List) c.getValue());
+ }
+ }
+
+ ArrayList myGroups = new ArrayList(3);
+
+ GroupMembers memberList = new GroupMembers();
+ memberList.setDataContext(getDataContext());
+ memberList.setField(GroupMembers.EXPUID, getUid());
+
+
+ if (log.isDebugEnabled()) {
+ log.debug("Getting groups for uid " + getUid() + ", login name " +
+ getLoginName());
+ }
+ for (Iterator e = memberList.searchAndRetrieveList().iterator();
+ e.hasNext();) {
+ GroupMembers oneMember = null;
+ oneMember = (GroupMembers) e.next();
+ myGroups.add(oneMember.getField("GroupName"));
+
+ if (log.isDebugEnabled()) {
+ log.debug("" + getUid() + " is a Member of group " +
+ oneMember.getField("GroupName"));
+ }
+ }
+
+ /**
+ * we manually add the UserGroup.UNKNOWN_USERS_GROUP so that
+ * it appears as though everyone was a member of this group. sigh.
+ */
+ myGroups.add(UserGroup.UNKNOWN_USERS_GROUP);
+
+
+ if (log.isDebugEnabled()) {
+ log.debug("" + getUid() + " is a member of " + myGroups.size() +
+ " groups");
+ }
+
+ if (cache != null) {
+ CachedObject co = new CachedObject(key, myGroups);
+ try {
+ cs.addItem(cacheName, co, 1000 * 60 * 10); //10 minute cache;
+ } catch (CacheException ex) {
+ log.error("Error adding group list to cache", ex);
+ }
+ }
+
+ return Collections.unmodifiableList(myGroups);
+ }
+
+ /**
+ * Get the groups that this user is a member of.
+ * @deprecated 12/2004; v.5.6 use getGroupsList instead. This method passes out actual vector object from cache--modifications affect cache
* @return Vector of strings
* @throws DBException upon database access error
*/
@@ -468,7 +552,7 @@
if (cache != null) {
CachedObject c = (CachedObject) cache.getItem(key);
if (c != null) {
- return (Vector) c.getValue();
+ return new Vector((Vector) c.getValue());
}
}
@@ -792,8 +876,8 @@
Hashtable allEvents = new Hashtable(1);
String oneGroupName = null;
- for (Enumeration gl = getGroups().elements(); gl.hasMoreElements();) {
- oneGroupName = (String) gl.nextElement();
+ for (Iterator iterator = getGroupsList().iterator(); iterator.hasNext();) {
+ oneGroupName = (String) iterator.next();
oneGroup.clear();
oneGroup.setField("GroupName", oneGroupName);
@@ -1468,7 +1552,7 @@
if (!pref.find()) {
// if none marked as primary, use first group in membership list
- Vector groupNames = user.getGroups();
+ List groupNames = user.getGroupsList();
if (groupNames.size() > 0) {
primary = new UserGroup();
primary.setDataContext(user.getDataContext());
More information about the cvs
mailing list