61050062a515249181b3ba02bc3a9c6626a76d64 chinhli Sat Apr 28 16:45:11 2012 -0700 Mail http link out. diff --git src/hg/hgLogin/hgLogin.c src/hg/hgLogin/hgLogin.c index c706c62..fc82f7c 100644 --- src/hg/hgLogin/hgLogin.c +++ src/hg/hgLogin/hgLogin.c @@ -29,62 +29,81 @@ char *excludeVars[] = { "submit", "Submit", "debug", "fixMembers", "update", "hgLogin_password", "hgLogin_password2", "hgLogin_newPassword1", "hgLogin_newPassword2", NULL }; /* The excludeVars are not saved to the cart. (We also exclude * any variables that start "near.do.") */ /* ---- Global variables. ---- */ struct cart *cart; /* This holds cgi and other variables between clicks. */ char *database; /* Name of genome database - hg15, mm3, or the like. */ struct hash *oldCart; /* Old cart hash. */ char *errMsg; /* Error message to show user when form data rejected */ /* -------- utilities functions --- */ -void sendMail() +void sendMail(char *email, char *subject, char *msg) { char cmd[256]; -char email[256]="chinhli@soe.ucsc.edu"; -char msg[256]="UCSC"; safef(cmd,sizeof(cmd), -"echo 'Hello from your favoriate browser at: %s' | mail -s \"Greeting form UCSC Genome Browser\" %s" -, msg, email); +// "echo 'Hello from your favoriate browser at: %s %s ' | mail -s \"Greeting form UCSC Genome Browser\" %s" +// , msg, httpLink, email); +//"echo '%s' | mail -s \"Greeting from uCSC\" %s" +"echo '%s' | mail -s \"%s\" %s" , msg, subject, email); int result = system(cmd); if (result == -1) { hPrintf( "

GSID HIV Data Browser

" "

" "

" "

Error emailing password to: %s

" "Click here to return.
" , email ); } else { hPrintf( "

GSID HIV Data Browser

" "

" "

" "

Password has been emailed to: %s

" "Click here to return.
" , email ); } +} + + + +void activateAccount(struct sqlConnection *conn) +/* activate user account */ +{ +struct sqlResult *sr; +char **row; +char query[256]; +char *token = cgiUsualString("hgLogin_activateAccount", ""); +safef(query,sizeof(query),"Token is %s ", token); +if (!sameString(token,"")) + { + freez(&errMsg); + errMsg = cloneString(query); + displayLoginPage(conn); + return; + } } /* -------- password functions ---- */ void cryptWikiWay(char *password, char *salt, char* result) // encrypt password as mediawiki does: ':B:'.$salt.':'. md5($salt.'-'.md5($password ) { int i; unsigned char result1[MD5_DIGEST_LENGTH]; unsigned char result2[MD5_DIGEST_LENGTH]; char firstMD5[MD5_DIGEST_LENGTH*2 + 1]; char secondMD5[MD5_DIGEST_LENGTH*2 + 1]; i = MD5_DIGEST_LENGTH; // /*DEBUG*/ printf("MD5_DIGEST_LENGT is -- %d\n",i); MD5((unsigned char *) password, strlen(password), result1); // output @@ -778,31 +797,38 @@ char **row; char query[256]; char *email = cartUsualString(cart, "hgLogin_email", ""); if (sameString(email,"")) { freez(&errMsg); errMsg = cloneString("Email address cannot be blank."); displayAccHelpPage(conn); return; } /* TODO: validate the email address is in right format */ /* Username selcted? */ char *helpWith = cartUsualString(cart, "helpWith", ""); if (sameString(helpWith,"username")) { - sendMail(); +char subject[256]; +char email[256]="chinhli@soe.ucsc.edu"; +char msg[256]; +char httpLink[256]="Visit http://www.genome.ucsc.edu "; +safef(subject, sizeof(subject),"Greeting form UCSC about %s", email); +safecpy(msg, sizeof(msg), "Hello from your favoriate browser at UCSC. "); +safecat (msg, sizeof(msg), httpLink); + sendMail(email, subject, msg); freez(&errMsg); errMsg = cloneString("Forgot user name selected!"); displayAccHelpPage(conn); return; } if (sameString(helpWith,"password")) { freez(&errMsg); errMsg = cloneString("Forgot password selected!"); displayAccHelpPage(conn); return; } displayAccHelpPage(conn); return; } @@ -1136,30 +1162,32 @@ ********************************************************************/ else if (cartVarExists(cart, "hgLogin.do.lostPasswordPage")) lostPasswordPage(conn); else if (cartVarExists(cart, "hgLogin.do.lostPassword")) lostPassword(conn); else if (cartVarExists(cart, "hgLogin.do.changePasswordPage")) changePasswordPage(conn); else if (cartVarExists(cart, "hgLogin.do.changePassword")) changePassword(conn); else if (cartVarExists(cart, "hgLogin.do.displayUserInfo")) displayUserInfo(conn); else if (cartVarExists(cart, "hgLogin.do.displayAccHelpPage")) displayAccHelpPage(conn); else if (cartVarExists(cart, "hgLogin.do.accountHelp")) accountHelp(conn); +else if (cartVarExists(cart, "hgLogin.do.activateAccount")) + accountHelp(conn); else if (cartVarExists(cart, "hgLogin.do.displayLoginPage")) displayLoginPage(conn); else if (cartVarExists(cart, "hgLogin.do.displayLogin")) displayLogin(conn); else if (cartVarExists(cart, "hgLogin.do.displayLogout")) displayLogoutSuccess(); else if (cartVarExists(cart, "hgLogin.do.signup")) signup(conn); else signupPage(conn); hDisconnectCentral(&conn); cartRemovePrefix(cart, "hgLogin.do.");