e553dd94e85a2355ba6676e887854c43fd50b1d0 chinhli Wed May 30 13:30:51 2012 -0700 Send forgotten username list using only one mail. diff --git src/hg/hgLogin/hgLogin.c src/hg/hgLogin/hgLogin.c index 1d64f8f..2f14f8c 100644 --- src/hg/hgLogin/hgLogin.c +++ src/hg/hgLogin/hgLogin.c @@ -230,31 +230,31 @@ int delay=nSec*1000; hPrintf("", delay, hgLoginHost); } boolean tokenExpired(char *dateTime) /* Is token expired? */ { return FALSE; } -void getReturnToURL(char **returnTo) +void getReturnToURL(char *returnTo) /* get URL passed in with returnto URL */ { char *returnURL = cartUsualString(cart, "returnto", ""); char *hgLoginHost = wikiLinkHost(); if (!returnURL || sameString(returnURL,"")) safef(returnTo, sizeof(returnTo), "http://%s/cgi-bin/hgSession?hgS_doMainPage=1", hgLoginHost); else safecpy(returnTo, sizeof(returnTo), returnURL); } void returnToURL(int nSec) /* delay for N/10 micro seconds then return to the "returnto" URL */ { @@ -285,31 +285,31 @@ { char *returnURL = cartUsualString(cart, "returnto", ""); char *hgLoginHost = wikiLinkHost(); char returnTo[512]; if (!returnURL || sameString(returnURL,"")) safef(returnTo, sizeof(returnTo), "http://%s/cgi-bin/hgSession?hgS_doMainPage=1", hgLoginHost); else safecpy(returnTo, sizeof(returnTo), returnURL); hPrintf( "
An account activation email has been sent to you \n" + "
An account activation email has been sent to you. \n" "Please activate your account within 7 days.
" "\n" "", returnURL); cartRemove(cart, "hgLogin_helpWith"); cartRemove(cart, "hgLogin_email"); cartRemove(cart, "hgLogin_userName"); } void sendActMailOut(char *email, char *subject, char *msg) /* send mail to email address */ { char *hgLoginHost = wikiLinkHost(); char cmd[4096]; safef(cmd,sizeof(cmd), @@ -378,55 +378,59 @@ "//-->" "\n" "", hgLoginHost); } } void mailUsername(char *email, char *users) /* send user name list to the email address */ { char subject[256]; char msg[256]; char *remoteAddr=getenv("REMOTE_ADDR"); safef(subject, sizeof(subject),"Your user name at the UCSC Genome Browser"); safef(msg, sizeof(msg), - "Someone (probably you, from IP address %s) has requested user name associated with this email address at UCSC Genome Browser. Your user name is: \n\n %s\n\n", + "Someone (probably you, from IP address %s) has requested user name(s) associated with this email address at UCSC Genome Browser: \n\n %s\n\n", remoteAddr, users); safecat (msg, sizeof(msg), signature); sendMailOut(email, subject, msg); } void sendUsername(struct sqlConnection *conn, char *email) /* email user username(s) */ { struct sqlResult *sr; char **row; char query[256]; /* find all the user names assocaited with this email address */ -char user[256]; +char userList[256]=""; safef(query,sizeof(query),"select * from gbMembers where email='%s'", email); sr = sqlGetResult(conn, query); +int numUser = 0; while ((row = sqlNextRow(sr)) != NULL) { struct gbMembers *m = gbMembersLoad(row); - safecpy(user, sizeof(user), m->userName); - mailUsername(email, user); + if (numUser >= 1) + safecat(userList, sizeof(userList), ", "); + safecat(userList, sizeof(userList), m->userName); + numUser += 1; } sqlFreeResult(&sr); +mailUsername(email, userList); } void sendNewPwdMail(char *username, char *email, char *password) /* send user new password */ { char subject[256]; char msg[4096]; char *remoteAddr=getenv("REMOTE_ADDR"); safef(subject, sizeof(subject),"New temporary password for UCSC Genome Browse"); safef(msg, sizeof(msg), "Someone (probably you, from IP address %s) requested a new password for UCSC Genome Browser (http://genome.ucsc.edu). A temporary password for user \"%s\" has been created and was set to \"%s\". If this was your intent, you will need to log in and choose a new password now. Your temporary password will expire in 7 days.\nIf someone else made this request, or if you have remembered your password, and you no longer wish to change it, you may ignore this message and continue using your old password.\n", remoteAddr, username, password); safecat (msg, sizeof(msg), signature); sendMailOut(email, subject, msg); }