%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
import="java.util.*"
import="com.tootsville.user.*"
import="org.starhope.appius.user.*"
import="org.starhope.appius.mb.Messages"
import="com.tootsville.WebUtil"
%><%
//---------- Universal Declarations: Place this on every page.
/**
* Parent/User object. On myAccount this should be declared User and on parent this should be declared Parent
*/
Toot sessionUser=null;
/**
* Error message list
*/
/**
* Success message list
*/
String url = "/membership/my-account";
%><%
System.err.println("Trying to change password.");
if (null!=request.getParameter("oldPassword")
&& null!=request.getParameter("newPassword")
&& null!=request.getParameter("newPasswordConfirm")
&& null!=session.getAttribute("sUserID")
&& null!=session.getAttribute("sUserType")
&& !request.getParameter("oldPassword").equals("")
&& !request.getParameter("newPassword").equals("")
&& !request.getParameter("newPasswordConfirm").equals("")
&& !session.getAttribute("sUserID").equals("")
&& session.getAttribute("sUserType").equals(WebUtil.USER)) {
System.err.println("It's going through.");
String oldPassword = request.getParameter("oldPassword");
String newPassword = request.getParameter("newPassword");
String newPasswordConfirm = request.getParameter("newPasswordConfirm");
sessionUser = (Toot) User.getByID(Integer.parseInt(session.getAttribute("sUserID").toString()));
if (null!=sessionUser) {
if (sessionUser.checkPassword(oldPassword)) {
if (!sessionUser.getPassword().equals(newPassword)) {
if (User.MIN_PW_LENGTH<=newPassword.length()) {
if (newPassword.equals(newPasswordConfirm)) {
sessionUser.setPassword(newPassword);
WebUtil.log (sessionUser.getUserName() + " (" + sessionUser.getUserID() + ") has updated their password to " + newPassword + ".");
suc.put("", Messages.getText("password_change"));
} else {
err.put("newPassword", Messages.getText("password_mismatch"));
WebUtil.log (sessionUser.getUserName() + " (" + sessionUser.getUserID() + ") entered two passwords that did not match when trying to change it.");
}
} else {
err.put("newPassword", Messages.getText("password_length"));
WebUtil.log (sessionUser.getUserName() + " (" + sessionUser.getUserID() + ") tried to set a new password that was too short.");
}
} else {
err.put("newPassword", Messages.getText("password_same"));
WebUtil.log (sessionUser.getUserName() + " (" + sessionUser.getUserID() + ") tried to change their password to the same thing.");
}
} else {
err.put("oldPassword", Messages.getText("password_invalid"));
WebUtil.log (sessionUser.getUserName() + " (" + sessionUser.getUserID() + ") mistyped their old password when trying to change it.");
}
} else {
err.put("", Messages.getText("login_invalid"));
}
} else {
if (null==request.getParameter("oldPassword") || request.getParameter("oldPassword").equals(""))
err.put("oldPassword", Messages.blank_field("old password"));
if (null==request.getParameter("newPassword") || request.getParameter("newPassword").equals(""))
err.put("oldPassword", Messages.blank_field("new password"));
if (null==request.getParameter("newPasswordConfirm") || request.getParameter("newPasswordConfirm").equals(""))
err.put("oldPassword", Messages.blank_field("new password confirmation"));
if (null==session.getAttribute("sUserID") || session.getAttribute("sUserID").equals("") || null==session.getAttribute("sUserType")) {
err.put("", Messages.getText("login_invalid"));
url = "/membership/";
}
}
if (err.size() > 0) {
/** If there was any errors caught, return to last page with the error message. */
session.setAttribute("sError", err);
}
if (suc.size() > 0) {
/** If there was any success messages, return to last page with the message. */
session.setAttribute("sSuccess", suc);
}
response.sendRedirect(response.encodeRedirectURL(url));
%>