5f7a14fde8cdb24b01fc0e5eadba145bfd9ecb04 max Sat Jul 25 23:16:06 2026 -0700 hgLogin: social login (Google/ORCID), email login link, change email. refs #37929 diff --git src/hg/lib/wikiLink.c src/hg/lib/wikiLink.c index bd393d75758..c0ba08902c3 100644 --- src/hg/lib/wikiLink.c +++ src/hg/lib/wikiLink.c @@ -535,28 +535,43 @@ loginUrl(), retEnc); } else { if (! wikiLinkEnabled()) errAbort("wikiLinkUserLogoutUrl called when wiki is not enable (specified " "in hg.conf)."); safef(buf, sizeof(buf), "http://%s/index.php?title=Special:UserlogoutUCSC&returnto=%s", wikiLinkHost(), retEnc); } freez(&retEnc); return(cloneString(buf)); } +char *wikiLinkChangeEmailUrl(char *hgsid) +/* Return the URL for the user change email page. Only supported by the hgLogin + * login system; returns NULL when a remote wiki handles logins. */ +{ +if (!loginSystemEnabled()) + return NULL; +char buf[2048]; +char *retEnc = encodedHgSessionReturnUrl(hgsid); +safef(buf, sizeof(buf), + "%s?hgLogin.do.changeEmailPage=1&returnto=%s", + loginUrl(), retEnc); +freez(&retEnc); +return(cloneString(buf)); +} + void wikiFixLogoutLinkWithJs() /* HTTP Basic Auth requires a strange hack to logout. This code prints a script * that fixes an html link with id=logoutLink */ { struct dyString *dy = dyStringNew(4096); // logoutJs.h is a stringified .js file #include "logoutJs.h" dyStringAppend(dy, cdwLogoutJs); dyStringPrintf(dy, "$('#logoutLink').click( function() { logout('/', 'http://cirm.ucsc.edu'); return false; });\n"); jsInline(dy->string); dyStringFree(&dy); printf(""); }