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>&nbsp;</td><td><input type=submit name=webUserAdmin.do.changePassword value=submit>"
 "&nbsp;<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>&nbsp;</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] [!@#$%^&*()].");