e361785d947cdb917f89179133c9216f665ade51 chinhli Wed May 2 16:38:27 2012 -0700 Check current password before reset password. diff --git src/hg/hgLogin/hgLogin.c src/hg/hgLogin/hgLogin.c index 4438876..5275c27 100644 --- src/hg/hgLogin/hgLogin.c +++ src/hg/hgLogin/hgLogin.c @@ -348,102 +348,52 @@ sr = sqlGetResult(conn, "select email,password from gbMembers where activated='Y'" " and (expireDate='' or (current_date() < expireDate))"); while ((row = sqlNextRow(sr)) != NULL) { fprintf(out,"%s:%s\n",row[0],row[1]); } sqlFreeResult(&sr); carefulClose(&out); } - - -/* ---------- reverse DNS function --------- */ - -#include -#include -#include - -char *reverseDns(char *ip) -/* do reverse dns lookup on ip using getnamebyaddr, - * and then return a string to be freed that is the host */ -{ -struct hostent *hp; -struct sockaddr_in sock; -if (inet_aton(ip,&sock.sin_addr) == 0) return NULL; -hp = gethostbyaddr(&sock.sin_addr,sizeof(sock.sin_addr),AF_INET); -if (!hp) return NULL; -return cloneString(hp->h_name); -} - - /* -------- functions ---- */ void debugShowAllMembers(struct sqlConnection *conn) /* display all gbMembers */ { struct sqlResult *sr; char **row; hPrintf("

Members

"); hPrintf(""); hPrintf(""); sr = sqlGetResult(conn, "select * from members"); while ((row = sqlNextRow(sr)) != NULL) { hPrintf("",row[0],row[1]); } sqlFreeResult(&sr); hPrintf("
emailpassword
%s%s
"); } - -/************************************************************ -void lostPasswordPage(struct sqlConnection *conn) -// draw the lost password page -{ -hPrintf( -"

UCSC Genome Browser

" -"

" -"

" -"%s" -"

Send Me A New Password

" -"
" -"" -"" -"" -"
E-mail " - "(your e-mail is also your user-id)
 " -" 
" -"
" -, errMsg ? errMsg : "" -); - -cartSaveSession(cart); - -hPrintf("
"); - -} - -**************************************************************/ void lostPassword(struct sqlConnection *conn) /* process the lost password form */ { char query[256]; char cmd[256]; char *email = cartUsualString(cart, "hgLogin_email", ""); if (!email || sameString(email,"")) { freez(&errMsg); errMsg = cloneString("Email cannot be blank."); // lostPasswordPage(conn); return; } safef(query,sizeof(query), "select password from gbMembers where email='%s'", email); char *password = sqlQuickString(conn, query); @@ -582,31 +532,31 @@ freez(&errMsg); errMsg = cloneString("Re-enter New Password field cannot be blank."); changePasswordPage(conn); return; } if (newPassword1 && newPassword2 && !sameString(newPassword1, newPassword2)) { freez(&errMsg); errMsg = cloneString("New passwords do not match."); changePasswordPage(conn); return; } /* check username existence first */ safef(query,sizeof(query), "select password from gbMembers where userName='%s'", user); char *password = sqlQuickString(conn, query); -if (!password) +if ((!password) || (password && !checkPwd(currentPassword,password))) { freez(&errMsg); errMsg = cloneString("Invalid user name or password."); changePasswordPage(conn); return; } char encPwd[45] = ""; encryptNewPwd(newPassword1, encPwd, sizeof(encPwd)); safef(query,sizeof(query), "update gbMembers set password='%s' where userName='%s'", sqlEscapeString(encPwd), sqlEscapeString(user)); sqlUpdate(conn, query); hPrintf ( "

UCSC Genome Browser

"