This display is used on the user account administration screen. It is called after all other modifications to the database are complete for UserAccountsDisplay.
User Account Display
public boolean ucUATransactUser(
String mode,
FormParameters fp,
SecurityUser su,
HttpServletRequest request,
HttpServletResponse response,
Connection dbconn,
SesameSession session) throws Exception {
return true;
}
Errors should be communicated to the user by setting the ALERT attribute in the current session.
public boolean ucUATransactUser(String mode, FormParameters fp, SecurityUser su, HttpServletRequest request, HttpServletResponse response, Connection dbconn, SesameSession session) throws Exception { // Don't perform transaction if the area/role form parameter doesn't exist // (in case of non-admin user editing account settings) if (! fp.containsKey("p_area_role") ) return true; // Create new area/role list based on form parameters list String[] areaRoles = fp.getArray("p_area_role"); ArrayList areaRoleList = new ArrayList(); for (int i = 0; i < areaRoles.length; i++) { // Get the role id of this area/role mapping String value = areaRoles[i]; // formatted as "
|
" int lastIndex = value.lastIndexOf('|'); String roleId = value.substring(lastIndex + 1); if (!roleId.equals("{NULL}")) // ignore none values areaRoleList.add(value); } // Get the id of the user account String userId = su.getId(); String updateUserId = session.getUserId(); String message = null; // Update the database with the area/role mappings try { if (mode.equals("doAdd")) UserAreaRole.addMultiple(dbconn, userId, areaRoleList, updateUserId); else UserAreaRole.editMultiple(dbconn, userId, areaRoleList, updateUserId); } catch (Exception e) { message = "Error updating Area/Role Mapping. Please see logged error."; Z.log.writeToLog(Z.log.ERROR, "ucUATransactUser Exception"); ErrorWriter.write(e, ErrorWriter.LOGERR); } dbconn.commit(); // Communicate error to user if (message != null) { session.setAttribute("ALERT", "\n"); return false; } return true; }