[Ils-source] r1412 - in trunk/webapp/api/ccure: . updatescore.vws user/put

scribe at crosswire.org scribe at crosswire.org
Wed Mar 16 16:51:13 MST 2016


Author: scribe
Date: 2016-03-16 16:51:13 -0700 (Wed, 16 Mar 2016)
New Revision: 1412

Added:
   trunk/webapp/api/ccure/updatescore.db/
   trunk/webapp/api/ccure/updatescore.vws/
Removed:
   trunk/webapp/api/ccure/updatescore/
Modified:
   trunk/webapp/api/ccure/updatescore.vws/index.jsp
   trunk/webapp/api/ccure/user/put/index.jsp
Log:
first cut of new CCURE integration for JAX, which accepts CCURE Personnel record XML


Modified: trunk/webapp/api/ccure/updatescore.vws/index.jsp
===================================================================
--- trunk/webapp/api/ccure/updatescore/index.jsp	2016-03-10 18:45:31 UTC (rev 1411)
+++ trunk/webapp/api/ccure/updatescore.vws/index.jsp	2016-03-16 23:51:13 UTC (rev 1412)
@@ -38,11 +38,36 @@
 
 	eventsLogger.debug("CCURE: entering updatescore api (events)");
 
-	String ccureHost = Utils.getSysConfig(session).getProperty("CCUREHost", "216.119.104.185:2500");
-	String ccureDBUser = Utils.getSysConfig(session).getProperty("CCUREDBUser", "sysprogress");
-	String ccureDBPassword = Utils.getSysConfig(session).getProperty("CCUREDBPassword", "manager");
-	String jdbcURL = "jdbc:datadirect:openedge://"+ccureHost+";databaseName=cf;User="+ccureDBUser+";password="+ccureDBPassword;
+//	String apiRoot = Utils.getSysConfig(session).getProperty("CCUREVWSRoot", "https://161.243.232.7/victorwebservice");
+	String apiRoot = Utils.getSysConfig(session).getProperty("CCUREVWSRoot", "http://labs.crosswire.org/victorwebservice");
+	if (!apiRoot.endsWith("/")) apiRoot+="/";
 
+	String ccureUser = Utils.getSysConfig(session).getProperty("CCUREUser", "ccureappmgr");
+	String ccurePassword = Utils.getSysConfig(session).getProperty("CCUREPassword", "orangePark101");
+	String loginURL = apiRoot + "api/Authenticate/Login";
+	String loginParams = "userName="+URLEncoder.encode(ccureUser, "UTF-8")+"&password="+URLEncoder.encode(ccurePassword, "UTF-8")+"&clientName=SSI_iLS";
+	String loginHeaders[] = { "Access-Control-Expose-Headers: session-id" };
+
+	StringBuffer result = HTTPUtils.postURL(loginURL, loginParams, null, null, loginHeaders, HTTPUtils.GET);
+%>
+<%=result%>
+<%
+if (true) return;
+/*
+url:
+
+dataType: JSON, // JSON or XML
+crossDomain: true,
+headers: {
+},
+cache: false,
+success: function (msg, status, jqXHR) {
+var result = msg;
+sessionID = jqXHR.getResponseHeader("session-id");
+token = result;
+}
+});
+
 	Map<String, String> courses = new HashMap<String, String>();
 	int i = 1;
 	while (true) {
@@ -155,6 +180,7 @@
     }
 eventsLogger.debug("CCURE: updatescore returning: " + errorMsg);
    	%><%= errorMsg %><%
+*/
 %>
 <%!
 public static String checkDBWrite(Logger eventsLogger, String jdbcURL, String ccureDBUser, String ccureDBPassword, int personID, String fieldName) {

Modified: trunk/webapp/api/ccure/user/put/index.jsp
===================================================================
--- trunk/webapp/api/ccure/user/put/index.jsp	2016-03-10 18:45:31 UTC (rev 1411)
+++ trunk/webapp/api/ccure/user/put/index.jsp	2016-03-16 23:51:13 UTC (rev 1412)
@@ -6,6 +6,7 @@
 <%@ page import="com.resolutions.ils.data.Company" %>
 <%@ page import="com.resolutions.ils.data.Group" %>
 <%@ page import="java.util.Date" %>
+<%@ page import="java.io.StringWriter" %>
 <%@ page import="java.text.SimpleDateFormat" %>
 <%@ page import="org.apache.log4j.Logger" %>
 <%@ page import="org.crosswire.xml.XMLBlock" %>
@@ -72,11 +73,12 @@
 logger.debug("char 2: " + data.charAt(2));
 */
 
-	XMLBlock record = null;
+	XMLBlock doc = null;
+	XMLBlock records[] = null;
 	++errCode;
 	try {
-		record = new XMLBlock(data);
-		record = record.getBlock("SoftwareHouse.NextGen.Common.SecurityObjects.Personnel");
+		doc = new XMLBlock(data);
+		records = doc.getBlocks("SoftwareHouse.NextGen.Common.SecurityObjects.Personnel");
 	}
 	catch (Exception e) { 
 		out.print("<error code=\""+errCode+"\" message=\"Error parsing XML: "+e+"\"/>");
@@ -84,321 +86,365 @@
 	}
 
 	++errCode;
-	if (record == null) {
+	if (records == null || records.length < 1) {
 		out.print("<error code=\""+errCode+"\" message=\"No CCURE Personnel record found in XML data.\"/>");
 		return;
 	}
 
-	int userProfileID = -1;
-	String loginID     = record.getValue("EmailAddress");
-	String userData    = record.getValue("ObjectID");
+	StringWriter result = new StringWriter();
+	int loopStartErrCode = errCode;
+	int success = 0;
+	int total = 0;
+	for (XMLBlock record : records) {
+		++total;
+		errCode = loopStartErrCode;
+		
+		int userProfileID = -1;
+		String userData    = record.getValue("ObjectID");
 
+		String val = record.getValue("Name");
+		String lname = val.substring(0,val.indexOf(","));
+		String fname = val.substring(val.indexOf(",")+1);
+		fname = fname.trim();
+		String mname = null;
+		if (fname.lastIndexOf(" ") != -1) {
+			mname = fname.substring(fname.lastIndexOf(" ")+1);
+			fname = fname.substring(0, fname.lastIndexOf(" "));
+		}
 
-// one of these must be supplied; otherwise, show usage info
-if (userProfileID != -1 || loginID != null || userData != null) {
-	String errMsg = "";
+		String loginID     = lname + "-" + userData;
 
-	UserProfile adminUser = ilsSession.getCurrentUserProfile();
+		result.write("<result objectID=\"" + userData + "\" loginID=\"" + loginID + "\">");
 
-	Logger eventsLogger   = Logger.getLogger("EVENTS");
-	String statusMsg      = "";
-	SimpleDateFormat df   = new SimpleDateFormat("MM/dd/yyyy");
-	UserProfile current   = new UserProfile();
-	current.defaultAll();
-	// default access level is employee
-	current.setUserProfileAccessLevel(1);
-	current.setUserProfileHireDate(new Date());
-	int currentRoleID     = -1;
-	int currentLocationID = -1;
-	String roleName       = null;
-	String roleUserData   = null;
-	String workgroupName  = null;
-	String workgroupUserData = null;
-	boolean createMode    = "create".equals(request.getParameter("action"));
+	// one of these must be supplied; otherwise, show usage info
+		++errCode;
+	if (userProfileID != -1 || loginID != null || userData != null) {
+		String errMsg = "";
 
-	++errCode;
-	if ((adminUser.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (adminUser.hasAccess(UserProfile.ACCESS_MODE_USERPR_SEARCH_VIEW))) {
-		if (!createMode) {
-			UserProfile lookup = null;
-			if (userProfileID != -1) {
-				lookup = UserProfile.getUserProfile(ilsSession, userProfileID);
-				if (lookup == null) {
-					out.print("<error code=\""+errCode+"\" message=\"Permission denied.\"/>");
-					return;
+		UserProfile adminUser = ilsSession.getCurrentUserProfile();
+
+		Logger eventsLogger   = Logger.getLogger("EVENTS");
+		String statusMsg      = "";
+		SimpleDateFormat df   = new SimpleDateFormat("MM/dd/yyyy");
+		UserProfile current   = new UserProfile();
+		current.defaultAll();
+		// default access level is employee
+		current.setUserProfileAccessLevel(1);
+		current.setUserProfileHireDate(new Date());
+		int currentRoleID     = -1;
+		int currentLocationID = -1;
+		String roleName       = null;
+		String roleUserData   = null;
+		String workgroupName  = null;
+		String workgroupUserData = null;
+		boolean createMode    = "create".equals(request.getParameter("action"));
+
+		++errCode;
+		if ((adminUser.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (adminUser.hasAccess(UserProfile.ACCESS_MODE_USERPR_SEARCH_VIEW))) {
+			if (!createMode) {
+				UserProfile lookup = null;
+				if (userProfileID != -1) {
+					lookup = UserProfile.getUserProfile(ilsSession, userProfileID);
+					if (lookup == null) {
+						result.write("<error code=\""+errCode+"\" message=\"Permission denied.\"/>");
+						result.write("</result>");
+						continue;
+					}
 				}
+				if (lookup == null && loginID != null) {
+					lookup = UserProfile.getUserProfile(ilsSession, loginID);
+				}
+				if (lookup == null && userData != null) {
+					lookup = UserProfile.getUserProfileByUserData(ilsSession, userData);
+				}
+				if (lookup != null) {
+					current = lookup;
+				}
+				else {
+					if (!"update".equals(request.getParameter("action"))) createMode = true;
+					else current = null;
+				}
 			}
-			if (lookup == null && loginID != null) {
-				lookup = UserProfile.getUserProfile(ilsSession, loginID);
-			}
-			if (lookup == null && userData != null) {
-				lookup = UserProfile.getUserProfileByUserData(ilsSession, userData);
-			}
-			if (lookup != null) {
-				current = lookup;
-			}
-			else {
-				if (!"update".equals(request.getParameter("action"))) createMode = true;
-				else current = null;
-			}
 		}
-	}
-	else {
+		else {
+			++errCode;
+			result.write("<error code=\""+errCode+"\" message=\"Permission denied.\"/>");
+			result.write("</result>");
+			continue;
+		}
+
+		errCode += 2;
+		if (current == null) {
+			result.write("<error code=\""+errCode+"\" message=\"User Profile not found.\"/>");
+			result.write("</result>");
+			continue;
+		}
 		++errCode;
-		out.print("<error code=\""+errCode+"\" message=\"Permission denied.\"/>");
-		return;
-	}
+		if (createMode && current.getUserProfileID() > 0) {
+			result.write("<error code=\""+errCode+"\" message=\"User Profile exists.\"/>");
+			result.write("</result>");
+			continue;
+		}
+		if (current.getUserProfileID() > 0 && adminUser.getUserProfileAccessLevel() <= UserProfile.ACCESS_MANAGER && !adminUser.hasAccess(UserProfile.ACCESS_MODE_USERPR_MODIFY_USER)) {
+			result.write("<error code=\""+errCode+"\" message=\"Permission denied to edit user profile.\"/>");
+			result.write("</result>");
+			continue;
+		}
 
-	errCode += 2;
-	if (current == null) {
-		out.print("<error code=\""+errCode+"\" message=\"User Profile not found.\"/>");
-		return;
-	}
-	++errCode;
-	if (createMode && current.getUserProfileID() > 0) {
-		out.print("<error code=\""+errCode+"\" message=\"User Profile exists.\"/>");
-		return;
-	}
-	if (current.getUserProfileID() > 0 && adminUser.getUserProfileAccessLevel() <= UserProfile.ACCESS_MANAGER && !adminUser.hasAccess(UserProfile.ACCESS_MODE_USERPR_MODIFY_USER)) {
-		out.print("<error code=\""+errCode+"\" message=\"Permission denied to edit user profile.\"/>");
-		return;
-	}
+		boolean createGroupOnDemand = true; //false; try { createGroupOnDemand = "true".equals(request.getParameter("createGroupOnDemand")); } catch (Exception e) {}
+		val = record.getValue("UDF__ROLE_");
+		String val2 = request.getParameter("roleUserData");
+		int requestedRole = -1;
 
-	boolean createGroupOnDemand = true; //false; try { createGroupOnDemand = "true".equals(request.getParameter("createGroupOnDemand")); } catch (Exception e) {}
-	String val = record.getValue("UDF__ROLE_");
-	String val2 = request.getParameter("roleUserData");
-	int requestedRole = -1;
-
-	++errCode;
-	if ((val != null && val.trim().length() > 0) || (val2 != null && val2.trim().length() > 0)) {
-		for (int i = 0; i < 2; ++i) {
-			Group g = (val2 != null) ? Group.getGroupByUserData(ilsSession, Group.GROUPTYPE_ROLE, val2) : Group.getGroupByName(ilsSession, Group.GROUPTYPE_ROLE, val);
-			if (g != null) {
-				requestedRole = g.getGroupID();
-				roleName = g.getGroupName();
-				break;
-			}
-			else {
-				if (i < 1 && createGroupOnDemand) {
-					Group grp = new Group();
-					grp.defaultAll();
-					grp.setGroupTypeID(Group.GROUPTYPE_ROLE);
-					grp.setGroupName(val != null ? val : val2);
-					roleName = grp.getGroupName();
-					grp.setGroupDesc(roleName);
-					if (val2 != null) grp.setValue("USERDATA", val2);
-					grp.saveNew(ilsSession);
+		++errCode;
+		if ((val != null && val.trim().length() > 0) || (val2 != null && val2.trim().length() > 0)) {
+			boolean err = false;
+			for (int i = 0; i < 2; ++i) {
+				Group g = (val2 != null) ? Group.getGroupByUserData(ilsSession, Group.GROUPTYPE_ROLE, val2) : Group.getGroupByName(ilsSession, Group.GROUPTYPE_ROLE, val);
+				if (g != null) {
+					requestedRole = g.getGroupID();
+					roleName = g.getGroupName();
+					break;
 				}
 				else {
-					out.print("<error code=\""+errCode+"\" message=\"" + ((val2 != null) ? "roleUserData" : "roleName") + " was submitted but was not found in the database. You must specify an existing Role or createGroupOnDemand must be passed as true.\"/>");
-					return;
+					if (i < 1 && createGroupOnDemand) {
+						Group grp = new Group();
+						grp.defaultAll();
+						grp.setGroupTypeID(Group.GROUPTYPE_ROLE);
+						grp.setGroupName(val != null ? val : val2);
+						roleName = grp.getGroupName();
+						grp.setGroupDesc(roleName);
+						if (val2 != null) grp.setValue("USERDATA", val2);
+						grp.saveNew(ilsSession);
+					}
+					else {
+						result.write("<error code=\""+errCode+"\" message=\"" + ((val2 != null) ? "roleUserData" : "roleName") + " was submitted but was not found in the database. You must specify an existing Role or createGroupOnDemand must be passed as true.\"/>");
+						result.write("</result>");
+						err = true;
+						break;
+					}
 				}
 			}
+			if (err) continue;
 		}
-	}
 
-	++errCode;
-	val = record.getValue("UDF__COMPANY_");
-	val2 = request.getParameter("locationUserData");
-	int requestedLocation = -1;
-	if ((val != null && val.trim().length() > 0) || (val2 != null && val2.trim().length() > 0)) {
-		for (int i = 0; i < 2; ++i) {
-			Group g = (val2 != null) ? Group.getGroupByUserData(ilsSession, Group.GROUPTYPE_LOCATION, val2) : Group.getGroupByName(ilsSession, Group.GROUPTYPE_LOCATION, val);
-			if (g != null) {
-				requestedLocation = g.getGroupID();
-				workgroupName = g.getGroupName();
-				break;
-			}
-			else {
-				if (i < 1 && createGroupOnDemand) {
-					Group grp = new Group();
-					grp.defaultAll();
-					grp.setGroupTypeID(Group.GROUPTYPE_LOCATION);
-					grp.setGroupName(val != null ? val : val2);
-					workgroupName = grp.getGroupName();
-					grp.setGroupDesc(workgroupName);
-					if (val2 != null) grp.setValue("USERDATA", val2);
-					grp.saveNew(ilsSession);
+		++errCode;
+		val = record.getValue("UDF__COMPANY_");
+		val2 = request.getParameter("locationUserData");
+		int requestedLocation = -1;
+		if ((val != null && val.trim().length() > 0) || (val2 != null && val2.trim().length() > 0)) {
+			boolean err = false;
+			for (int i = 0; i < 2; ++i) {
+				Group g = (val2 != null) ? Group.getGroupByUserData(ilsSession, Group.GROUPTYPE_LOCATION, val2) : Group.getGroupByName(ilsSession, Group.GROUPTYPE_LOCATION, val);
+				if (g != null) {
+					requestedLocation = g.getGroupID();
+					workgroupName = g.getGroupName();
+					break;
 				}
 				else {
-					out.print("<error code=\""+errCode+"\" message=\""+((val2 != null) ? "locationUserData" : "locationName") + " was submitted but was not found in the database. You must specify an existing Location or createGroupOnDemand must be passed as true.\"/>");
-					return;
+					if (i < 1 && createGroupOnDemand) {
+						Group grp = new Group();
+						grp.defaultAll();
+						grp.setGroupTypeID(Group.GROUPTYPE_LOCATION);
+						grp.setGroupName(val != null ? val : val2);
+						workgroupName = grp.getGroupName();
+						grp.setGroupDesc(workgroupName);
+						if (val2 != null) grp.setValue("USERDATA", val2);
+						grp.saveNew(ilsSession);
+					}
+					else {
+						result.write("<error code=\""+errCode+"\" message=\""+((val2 != null) ? "locationUserData" : "locationName") + " was submitted but was not found in the database. You must specify an existing Location or createGroupOnDemand must be passed as true.\"/>");
+						result.write("</result>");
+						err = true;
+						break;
+					}
 				}
 			}
+			if (err) continue;
 		}
-	}
 
-	UserProfile orig = (UserProfile)current.clone();
+		UserProfile orig = (UserProfile)current.clone();
 
-	++errCode;
-	val = loginID;
-	if (val != null && val.trim().length() > 0) {
-		UserProfile up = UserProfile.getUserProfile(ilsSession, val);
-		if ((up != null) && (up.getUserProfileID() != current.getUserProfileID())) {
-			errMsg = "The Employee ID already exists.";
-			out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-			return;
+		++errCode;
+		val = loginID;
+		if (val != null && val.trim().length() > 0) {
+			UserProfile up = UserProfile.getUserProfile(ilsSession, val);
+			if ((up != null) && (up.getUserProfileID() != current.getUserProfileID())) {
+				errMsg = "The Employee ID already exists.";
+				result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+				result.write("</result>");
+				continue;
+			}
+			else {
+				current.setUserProfileNum(val);
+			}
 		}
-		else {
-			current.setUserProfileNum(val);
-		}
-	}
 
-	// set associated external data, typically used for API client to map this user back to their system
-	if (userData != null && userData.length() > 0) current.setValue("USERDATA", userData);
+		// set associated external data, typically used for API client to map this user back to their system
+		if (userData != null && userData.length() > 0) current.setValue("USERDATA", userData);
 
-	val = request.getParameter("passwd");
-	if (val != null && val.trim().length() > 0) current.setUserProfilePasswd(val);
-	val = request.getParameter("statusID");
-	if (val != null && val.trim().length() > 0) current.setUserProfileStatusID(Integer.parseInt(val));
+		val = request.getParameter("passwd");
+		if (val != null && val.trim().length() > 0) current.setUserProfilePasswd(val);
+		val = request.getParameter("statusID");
+		if (val != null && val.trim().length() > 0) current.setUserProfileStatusID(Integer.parseInt(val));
 
-	val = request.getParameter("accessLevel");
-	if (val != null && val.trim().length() > 0) current.setUserProfileAccessLevel(Integer.parseInt(val));
+		val = request.getParameter("accessLevel");
+		if (val != null && val.trim().length() > 0) current.setUserProfileAccessLevel(Integer.parseInt(val));
 
-	val = request.getParameter("accessMode");
-	if (val != null && val.trim().length() > 0) current.setUserProfileAccessMode(Integer.parseInt(val));
+		val = request.getParameter("accessMode");
+		if (val != null && val.trim().length() > 0) current.setUserProfileAccessMode(Integer.parseInt(val));
 
-	val = record.getValue("Name");
-	String lname = val.substring(0,val.indexOf(","));
-	String fname = val.substring(val.indexOf(",")+1);
-	fname = fname.trim();
-	String mname = null;
-	if (fname.lastIndexOf(" ") != -1) {
-		mname = fname.substring(fname.lastIndexOf(" ")+1);
-		fname = fname.substring(0, fname.lastIndexOf(" "));
-	}
+		val = fname;
+		if (val != null && val.trim().length() > 0) current.setUserProfileFirstName(val);
+		val = mname;
+		if (val != null && val.trim().length() > 0) current.setUserProfileMiddleName(val);
+		val = request.getParameter("suffixName");
+		if (val != null && val.trim().length() > 0) current.setUserProfileSuffixName(val);
+		val = lname;
+		if (val != null && val.trim().length() > 0) current.setUserProfileLastName(val);
+		val = request.getParameter("employeeTitle");
+		if (val != null && val.trim().length() > 0) current.setUserProfileEmployeeTitleID(Integer.parseInt(val));
+		val = request.getParameter("addr1");
+		if (val != null && val.trim().length() > 0) current.setUserProfileAddr1(val);
+		val = request.getParameter("addr2");
+		if (val != null && val.trim().length() > 0) current.setUserProfileAddr2(val);
+		val = request.getParameter("city");
+		if (val != null && val.trim().length() > 0) current.setUserProfileCity(val);
+		val = request.getParameter("state");
+		if (val != null && val.trim().length() > 0) current.setUserProfileState(val);
+		val = request.getParameter("zip");
+		if (val != null && val.trim().length() > 0) current.setUserProfileZip(val);
+		val = request.getParameter("country");
+		if (val != null && val.trim().length() > 0) current.setUserProfileCountry(val);
+		val = record.getValue("EmailAddress");
+		if (val != null && val.trim().length() > 0) current.setUserProfileEMail(val);
+		val = request.getParameter("phone");
+		if (val != null && val.trim().length() > 0) current.setUserProfilePhone(val);
+		val = request.getParameter("hireDate");
+		++errCode;
+		if ((val != null) && (!val.startsWith("m"))) {
+			Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
+			if (v != null) {
+				current.setUserProfileHireDate(v);
+			}
+			else {
+				errMsg = "Invalid Hire Date, please enter a reasonable date using the format MM/DD/YYYY";
+				result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+				result.write("</result>");
+				continue;
+			}
+		}
 
-	val = fname;
-	if (val != null && val.trim().length() > 0) current.setUserProfileFirstName(val);
-	val = mname;
-	if (val != null && val.trim().length() > 0) current.setUserProfileMiddleName(val);
-	val = request.getParameter("suffixName");
-	if (val != null && val.trim().length() > 0) current.setUserProfileSuffixName(val);
-	val = lname;
-	if (val != null && val.trim().length() > 0) current.setUserProfileLastName(val);
-	val = request.getParameter("employeeTitle");
-	if (val != null && val.trim().length() > 0) current.setUserProfileEmployeeTitleID(Integer.parseInt(val));
-	val = request.getParameter("addr1");
-	if (val != null && val.trim().length() > 0) current.setUserProfileAddr1(val);
-	val = request.getParameter("addr2");
-	if (val != null && val.trim().length() > 0) current.setUserProfileAddr2(val);
-	val = request.getParameter("city");
-	if (val != null && val.trim().length() > 0) current.setUserProfileCity(val);
-	val = request.getParameter("state");
-	if (val != null && val.trim().length() > 0) current.setUserProfileState(val);
-	val = request.getParameter("zip");
-	if (val != null && val.trim().length() > 0) current.setUserProfileZip(val);
-	val = request.getParameter("country");
-	if (val != null && val.trim().length() > 0) current.setUserProfileCountry(val);
-	val = record.getValue("EmailAddress");
-	if (val != null && val.trim().length() > 0) current.setUserProfileEMail(val);
-	val = request.getParameter("phone");
-	if (val != null && val.trim().length() > 0) current.setUserProfilePhone(val);
-	val = request.getParameter("hireDate");
-	++errCode;
-	if ((val != null) && (!val.startsWith("m"))) {
-		Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
-		if (v != null) {
-			current.setUserProfileHireDate(v);
+		++errCode;
+		val = request.getParameter("termDate");
+		if ((val != null) && (!val.startsWith("m"))) {
+			Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
+			if (v != null) {
+				current.setUserProfileTermDate(v);
+			}
+			else {
+				errMsg = "Invalid Termination Date, please enter a reasonable date using the format MM/DD/YYYY";
+				result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+				result.write("</result>");
+				continue;
+			}
 		}
-		else {
-			errMsg = "Invalid Hire Date, please enter a reasonable date using the format MM/DD/YYYY";
-			out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-			return;
+
+		if ((current.getUserProfilePasswd() == null) || (current.getUserProfilePasswd().trim().length() < 1)) {
+			current.setUserProfilePasswd("changeme");
 		}
-	}
 
-	++errCode;
-	val = request.getParameter("termDate");
-	if ((val != null) && (!val.startsWith("m"))) {
-		Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
-		if (v != null) {
-			current.setUserProfileTermDate(v);
+		++errCode;
+		if ((current.getUserProfileFirstName() == null) || (current.getUserProfileFirstName().length() < 1)) {
+			errMsg = "You must supply a First Name (firstName)";
+			result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+			result.write("</result>");
+			continue;
 		}
+		++errCode;
+		if ((current.getUserProfileLastName() == null) || (current.getUserProfileLastName().length() < 1)) {
+			errMsg = "You must supply a Last Name (lastName)";
+			result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+			result.write("</result>");
+			continue;
+		}
+		++errCode;
+		if ((current.getUserProfileNum() == null) || (current.getUserProfileNum().length() < 1)) {
+			errMsg = "You must supply an Login ID (loginID)";
+			result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+			result.write("</result>");
+			continue;
+		}
+
+		++errCode;
+		/*
+		if (currentRoleID < 0 && requestedRole < 0) {
+			errMsg = "You must choose a Role for this employee";
+			result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+			result.write("</result>");
+			continue;
+		}
+		*/
+		++errCode;
+		/*
+		if (currentLocationID < 0 && requestedLocation < 0) {
+			errMsg = "You must choose a Workgroup for this employee";
+			result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+			result.write("</result>");
+			continue;
+		}
+		*/
+		++errCode;
+		/*
+		if (current.getUserProfileEmployeeTitleID() < 1) {
+			errMsg = "You must supply an Employee Title";
+			result.write("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
+			result.write("</result>");
+			continue;
+		}
+		*/
+
+		if (orig.getUserProfileID() > 0) {
+			boolean emailNotice = "on".equals(Utils.getSysConfig(session).getProperty("EmailEnableChangePassword", "off"));
+			HttpSession sendEmail = (emailNotice) ? session : null;
+			current.save(ilsSession, orig, sendEmail);
+		}
 		else {
-			errMsg = "Invalid Termination Date, please enter a reasonable date using the format MM/DD/YYYY";
-			out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-			return;
+			current = current.saveNew(ilsSession, session, workgroupName, roleName);
 		}
-	}
+		if ((requestedRole != currentRoleID) && (requestedRole > -1)) {
+			Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
+			Group.addUserGroup(ilsSession, requestedRole, current.getUserProfileID());
+			// modifying an existing user
+			if (orig.getUserProfileID() > 0) {
+				eventsLogger.info("User " + current.getUserProfileNum() + " ROLE changed from " + currentRoleID + " to " + requestedRole + " by user: " + adminUser.getUserProfileNum());
+			}
+		}
+		if ((requestedLocation != currentLocationID) && (requestedLocation > -1)) {
+			Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_LOCATION, current.getUserProfileID());
+			Group.addUserGroup(ilsSession, requestedLocation, current.getUserProfileID());
+			if (orig.getUserProfileID() > 0) {
+				eventsLogger.info("User " + current.getUserProfileNum() + " WORKGROUP changed from " + currentLocationID + " to " + requestedLocation + " by user: " + adminUser.getUserProfileNum());
+			}
+		}
+		result.write("<success userProfileID=\""+current.getUserProfileID()+"\""+(requestedRole > -1 ? " updatedRoleID=\"" + requestedRole + "\"" : "")+(requestedLocation > -1 ? " updatedLocationID=\"" + requestedLocation + "\"" : "")+"/>");
+		result.write("</result>");
+		++success;
+		}
+		else result.write("<error code=\""+errCode+"\" message=\"no loginID, userProfileID, or userData to identify record\" />");
 
-	if ((current.getUserProfilePasswd() == null) || (current.getUserProfilePasswd().trim().length() < 1)) {
-		current.setUserProfilePasswd("changeme");
-	}
+	}	// record, for loop
 
-	++errCode;
-	if ((current.getUserProfileFirstName() == null) || (current.getUserProfileFirstName().length() < 1)) {
-		errMsg = "You must supply a First Name (firstName)";
-		out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-		return;
-	}
-	++errCode;
-	if ((current.getUserProfileLastName() == null) || (current.getUserProfileLastName().length() < 1)) {
-		errMsg = "You must supply a Last Name (lastName)";
-		out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-		return;
-	}
-	++errCode;
-	if ((current.getUserProfileNum() == null) || (current.getUserProfileNum().length() < 1)) {
-		errMsg = "You must supply an Login ID (loginID)";
-		out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-		return;
-	}
+	if (success == total) out.print("<success");
+	else out.print("<error");
 
-	++errCode;
-	/*
-	if (currentRoleID < 0 && requestedRole < 0) {
-		errMsg = "You must choose a Role for this employee";
-		out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-		return;
-	}
-	*/
-	++errCode;
-	/*
-	if (currentLocationID < 0 && requestedLocation < 0) {
-		errMsg = "You must choose a Workgroup for this employee";
-		out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-		return;
-	}
-	*/
-	++errCode;
-	/*
-	if (current.getUserProfileEmployeeTitleID() < 1) {
-		errMsg = "You must supply an Employee Title";
-		out.print("<error code=\""+errCode+"\" message=\""+errMsg+"\"/>");
-		return;
-	}
-	*/
+	out.print(" count=\""+total+"\" success=\""+success+"\">");
+	out.print(result.toString());
 
-	if (orig.getUserProfileID() > 0) {
-		boolean emailNotice = "on".equals(Utils.getSysConfig(session).getProperty("EmailEnableChangePassword", "off"));
-		HttpSession sendEmail = (emailNotice) ? session : null;
-		current.save(ilsSession, orig, sendEmail);
-	}
-	else {
-		current = current.saveNew(ilsSession, session, workgroupName, roleName);
-	}
-	if ((requestedRole != currentRoleID) && (requestedRole > -1)) {
-		Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
-		Group.addUserGroup(ilsSession, requestedRole, current.getUserProfileID());
-		// modifying an existing user
-		if (orig.getUserProfileID() > 0) {
-			eventsLogger.info("User " + current.getUserProfileNum() + " ROLE changed from " + currentRoleID + " to " + requestedRole + " by user: " + adminUser.getUserProfileNum());
-		}
-	}
-	if ((requestedLocation != currentLocationID) && (requestedLocation > -1)) {
-		Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_LOCATION, current.getUserProfileID());
-		Group.addUserGroup(ilsSession, requestedLocation, current.getUserProfileID());
-		if (orig.getUserProfileID() > 0) {
-			eventsLogger.info("User " + current.getUserProfileNum() + " WORKGROUP changed from " + currentLocationID + " to " + requestedLocation + " by user: " + adminUser.getUserProfileNum());
-		}
-	}
-%>
-<success userProfileID="<%=current.getUserProfileID()%>"<%=requestedRole > -1 ? " updatedRoleID=\"" + requestedRole + "\"" : ""%><%=requestedLocation > -1 ? " updatedLocationID=\"" + requestedLocation + "\"" : ""%>/>
-<%
+	if (success == total) out.print("</success>");
+	else out.print("</error>");
 	return;
-
 }
-}
 response.setContentType("text/html");
 %>
 <html>




More information about the Ils-source mailing list