src/hg/instinct/webUserAdmin/webUserAdmin.c 1.11
1.11 2009/09/10 22:16:24 fanhsu
Added "re-enter password" function for both signup and change password tasks.
Index: src/hg/instinct/webUserAdmin/webUserAdmin.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/webUserAdmin/webUserAdmin.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -b -B -U 4 -r1.10 -r1.11
--- src/hg/instinct/webUserAdmin/webUserAdmin.c 9 Sep 2009 20:32:40 -0000 1.10
+++ src/hg/instinct/webUserAdmin/webUserAdmin.c 10 Sep 2009 22:16:24 -0000 1.11
@@ -350,8 +350,9 @@
"<tr><td>E-mail</td><td><input type=text name=webUser_email size=20 value=\"%s\"> "
"(your e-mail is also your user-id)</td></tr>"
"<tr><td>Current Password</td><td><input type=password name=webUser_password value=\"\" size=10></td></tr>\n"
"<tr><td>New Password</td><td><input type=password name=webUser_newPassword value=\"\" size=10></td></tr>\n"
+"<tr><td>Re-enter new Password</td><td><input type=password name=webUser_newPassword2 value=\"\" size=10></td></tr>\n"
"<tr><td> </td><td><input type=submit name=webUserAdmin.do.changePassword value=submit>"
" <input type=submit name=webUserAdmin.do.signupPage value=cancel></td></tr>"
"</table>"
"<br>"
@@ -583,8 +584,9 @@
char query[256];
char *email = cartUsualString(cart, "webUser_email", "");
char *currentPassword = cartUsualString(cart, "webUser_password", "");
char *newPassword = cartUsualString(cart, "webUser_newPassword", "");
+char *newPassword2 = cartUsualString(cart, "webUser_newPassword2", "");
if (!email || sameString(email,""))
{
freez(&errMsg);
errMsg = cloneString("Email cannot be blank.");
@@ -604,8 +606,15 @@
errMsg = cloneString("New password cannot be blank.");
changePasswordPage(conn);
return;
}
+if (!sameWord(newPassword, newPassword2))
+ {
+ freez(&errMsg);
+ errMsg = cloneString("The new password you entered and the one you re-entered must be the same. Please try again.");
+ changePasswordPage(conn);
+ return;
+ }
safef(query,sizeof(query), "select password from webUsers where email='%s'", email);
char *password = sqlQuickString(conn, query);
if (!password)
{
@@ -656,9 +665,11 @@
updatePasswordsFile(conn);
cartRemove(cart, "webUser_password");
+cartRemove(cart, "webUser_password2");
cartRemove(cart, "webUser_newPassword");
+cartRemove(cart, "webUser_newPassword2");
}
void updatePasswordUserInfoPage(struct sqlConnection *conn)
/* change password and update user info page */
@@ -779,9 +790,11 @@
, email
);
cartRemove(cart, "webUser_password");
+cartRemove(cart, "webUser_password2");
cartRemove(cart, "webUser_newPassword");
+cartRemove(cart, "webUser_newPassword2");
}
void signupPage(struct sqlConnection *conn)
/* draw the signup page */
@@ -820,8 +833,9 @@
hPrintf("<table>\n"
"<tr><td>E-mail</td><td><input type=text name=webUser_email value=\"%s\"size=20>\n"
"<tr><td>Password</td><td><input type=password name=webUser_password value=\"%s\" size=10></td></tr>\n"
+"<tr><td>Re-enter password</td><td><input type=password name=webUser_password2 value=\"%s\" size=10></td></tr>\n"
"<tr><td>Name</td><td><input type=text name=webUser_name value=\"%s\" size=20></td></tr>\n"
"<tr><td>Phone</td><td><input type=text name=webUser_phone value=\"%s\" size=20></td></tr>\n"
"<tr><td>Institution</td><td><input type=text name=webUser_institution value=\"%s\" size=40></td></tr>\n"
"<tr><td> </td><td><input type=submit name=webUserAdmin.do.signup value=submit></td></tr>\n"
@@ -829,8 +843,9 @@
"<br>\n"
"Questions or problems? Please email <a href=\"mailto:fanhsu@soe.ucsc.edu\">fanhsu@soe.ucsc.edu</a>.<br>\n"
, cartUsualString(cart, "webUser_email", "")
, cartUsualString(cart, "webUser_password", "")
+, cartUsualString(cart, "webUser_password2", "")
, cartUsualString(cart, "webUser_name", "")
, cartUsualString(cart, "webUser_phone", "")
, cartUsualString(cart, "webUser_institution", "")
, sameString("commercial",cartUsualString(cart, "webUser_type", "")) ? " checked" : ""
@@ -872,8 +887,16 @@
errMsg = cloneString("Password must be at least 8 characters long.");
signupPage(conn);
return;
}
+char *password2 = cartUsualString(cart, "webUser_password2", "");
+if (!sameWord(password, password2))
+ {
+ freez(&errMsg);
+ errMsg = cloneString("The password you entered and the one you re-entered must be the same. Please try again.");
+ signupPage(conn);
+ return;
+ }
if (!checkPwdCharClasses(password))
{
freez(&errMsg);
errMsg = cloneString("Password must contain characters from 2 of the following 4 classes: [A-Z] [a-z] [0-9] [!@#$%^&*()].");