d3e16537874999b3f3788ecbb5a8ac9980eba585 chinhli Tue Jun 5 16:47:41 2012 -0700 Change based on code review feedback (8116) from Brian, plus restrict username length to 32 no longer than 32 characters diff --git src/hg/hgLogin/hgLogin.c src/hg/hgLogin/hgLogin.c index a4710dd..fbcb487 100644 --- src/hg/hgLogin/hgLogin.c +++ src/hg/hgLogin/hgLogin.c @@ -234,94 +234,63 @@ if (*c <= ' ' || *c >= 127) return 0; } if (!*c++) return 0; if (*c == '@') break; if (*c != '.') return 0; continue; } if (*c == '@') break; if (*c <= ' ' || *c >= 127) return 0; if (strchr(rfc822_specials, *c)) return 0; } if (c == address || *(c - 1) == '.') return 0; /* next we validate the domain portion (name@domain) */ if (!*(domain = ++c)) return 0; -do { +do + { if (*c == '.') { if (c == domain || *(c - 1) == '.') return 0; count++; } if (*c <= ' ' || *c >= 127) return 0; if (strchr(rfc822_specials, *c)) return 0; } while (*++c); return (count >= 1); } -void backToHgSession(int nSec) -/* delay for N/10 micro seconds then go back to hgSession page */ -{ -char *hgLoginHost = wikiLinkHost(); -int delay=nSec*100; -hPrintf("", delay, hgLoginHost); -} - -void backToDoLoginPage(int nSec) -/* delay for N micro seconds then go back to Login page */ -{ -char *hgLoginHost = wikiLinkHost(); -int delay=nSec*1000; -hPrintf("", delay, hgLoginHost); -} - -boolean tokenExpired(char *dateTime) -/* Is token expired? */ -{ -return FALSE; -} - char *getReturnToURL() /* get URL passed in with returnto URL */ { char *returnURL = cartUsualString(cart, "returnto", ""); char *hgLoginHost = wikiLinkHost(); -char returnTo[512]; +char returnTo[2048]; if (!returnURL || sameString(returnURL,"")) safef(returnTo, sizeof(returnTo), "http://%s/cgi-bin/hgSession?hgS_doMainPage=1", hgLoginHost); else safecpy(returnTo, sizeof(returnTo), returnURL); return cloneString(returnTo); } -void returnToURL(int nSec) -/* delay for N/10 micro seconds then return to the "returnto" URL */ +void returnToURL(int delay) +/* delay for delay mill-seconds then return to the "returnto" URL */ { char *returnURL = getReturnToURL(); -int delay=nSec*100; +//int delay=nSec*1000; hPrintf( "", delay, returnURL); } void displayActMailSuccess() /* display Activate mail success box */ { char *returnURL = getReturnToURL(); @@ -800,32 +769,31 @@ 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); clearNewPasswordFields(conn, user); hPrintf("
" "
" "Signing up enables you to save multiple sessions and to share your sessions with others.
" "Already have an account? Login.\n" "
\n" "" "
" "" "\n"); /* Set cookies */ hPrintf("\n" "" "\n", userName,userID); cartRemove(cart,"hgLogin_userName"); -returnToURL(1); +returnToURL(150); } void displayLogin(struct sqlConnection *conn) /* display and process login info */ { struct sqlResult *sr; char **row; char query[256]; char *userName = cartUsualString(cart, "hgLogin_userName", ""); if (sameString(userName,"")) { freez(&errMsg); errMsg = cloneString("User name cannot be blank."); displayLoginPage(conn); return; @@ -1145,31 +1117,31 @@ void displayLogoutSuccess() /* display logout success msg, and reset cookie */ { hPrintf("" "
" "" "\n"); hPrintf("\n"); /* return to "returnto" URL */ -returnToURL(1); +returnToURL(150); } void doMiddle(struct cart *theCart) /* Write the middle parts of the HTML page. * This routine sets up some globals and then * dispatches to the appropriate page-maker. */ { struct sqlConnection *conn = hConnectCentral(); cart = theCart; if (cartVarExists(cart, "hgLogin.do.changePasswordPage")) changePasswordPage(conn); else if (cartVarExists(cart, "hgLogin.do.changePassword")) changePassword(conn); else if (cartVarExists(cart, "hgLogin.do.displayAccHelpPage"))