b655b46738f2aaeff8f9fcb188f3c1de565d0891 chinhli Tue Mar 26 09:00:17 2013 -0700 Redmine Bug #9662 Use wiki.userNameCookie and wiki.loggedInCookie values as name of cookie. diff --git src/hg/hgLogin/hgLogin.c src/hg/hgLogin/hgLogin.c index 2da0c02..7bcd3d6 100644 --- src/hg/hgLogin/hgLogin.c +++ src/hg/hgLogin/hgLogin.c @@ -26,30 +26,50 @@ char *incorrectUsernameOrPassword="The username or password you entered is incorrect."; char *incorrectUsername="The username you entered is incorrect."; /* The excludeVars are not saved to the cart. */ char *excludeVars[] = { "submit", "Submit", "debug", "fixMembers", "update", "hgLogin_password", "hgLogin_password2", "hgLogin_newPassword1", "hgLogin_newPassword2", NULL }; 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 */ char brwName[64]; char brwAddr[256]; char signature[256]; char returnAddr[256]; /* ---- Global helper functions ---- */ +char *cookieNameForUserName() +/* Return the cookie name used for logged in user name like 'wikidb_mw1_UserName' */ +{ +if isEmpty(cfgOption(CFG_COOKIIENAME_USERNAME)) + return cloneString("NULL_cookieNameUserName"); +else + return cloneString(cfgOption(CFG_COOKIIENAME_USERNAME)); +} + +char *cookieNameForUserID() +/* Return the cookie name used for logged in user ID like 'wikidb_mw1_UserID' */ +{ +if isEmpty(cfgOption(CFG_COOKIIENAME_USERID)) + return cloneString("NULL_cookieNameUserID"); +else + return cloneString(cfgOption(CFG_COOKIIENAME_USERID)); +} + + + char *browserName() /* Return the browser name like 'UCSC Genome Browser' */ { if isEmpty(cfgOption(CFG_LOGIN_BROWSER_NAME)) return cloneString("NULL_browserName"); else return cloneString(cfgOption(CFG_LOGIN_BROWSER_NAME)); } char *browserAddr() /* Return the browser address like 'http://genome.ucsc.edu' */ { if isEmpty(cfgOption(CFG_LOGIN_BROWSER_ADDR)) return cloneString("NULL_browserAddr"); else @@ -1163,39 +1183,41 @@ else return cloneString(returnToDomain); } void displayLoginSuccess(char *userName, int userID) /* display login success msg, and set cookie */ { hPrintf("<h2>%s</h2>", brwName); hPrintf( "<p align=\"left\">" "</p>" "<span style='color:red;'></span>" "\n"); /* Set cookies */ char *domainName=getCookieDomainName(); +char *userNameCookie=cookieNameForUserName(); +char *userIDCookie=cookieNameForUserID(); hPrintf("<script language=\"JavaScript\">" " document.write(\"Login successful, setting cookies now...\");" "</script>\n" "<script language=\"JavaScript\">" - "document.cookie = \"wikidb_mw1_UserName=%s; domain=%s; expires=Thu, 30-Dec-2037 23:59:59 GMT; path=/;\";" + "document.cookie = \"%s=%s; domain=%s; expires=Thu, 30-Dec-2037 23:59:59 GMT; path=/;\";" "\n" - "document.cookie = \"wikidb_mw1_UserID=%d; domain=%s; expires=Thu, 30-Dec-2037 23:59:59 GMT; path=/;\";" + "document.cookie = \"%s=%d; domain=%s; expires=Thu, 30-Dec-2037 23:59:59 GMT; path=/;\";" " </script>" - "\n", userName, domainName, userID, domainName); + "\n", userNameCookie, userName, domainName, userIDCookie, userID, domainName); cartRemove(cart,"hgLogin_userName"); 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."); @@ -1253,35 +1275,37 @@ return; } gbMembersFree(&m); } void displayLogoutSuccess() /* display logout success msg, and reset cookie */ { hPrintf("<h2>%s Sign Out</h2>", brwName); hPrintf( "<p align=\"left\">" "</p>" "<span style='color:red;'></span>" "\n"); char *domainName=getCookieDomainName(); +char *userNameCookie=cookieNameForUserName(); +char *userIDCookie=cookieNameForUserID(); hPrintf("<script language=\"JavaScript\">" - "document.cookie = \"wikidb_mw1_UserName=; domain=%s; expires=Thu, 1-Jan-1970 0:0:0 GMT; path=/;\";" + "document.cookie = \"%s=; domain=%s; expires=Thu, 1-Jan-1970 0:0:0 GMT; path=/;\";" "\n" - "document.cookie = \"wikidb_mw1_UserID=; domain=%s; expires=Thu, 1-Jan-1970 0:0:0 GMT; path=/;\";" - "</script>\n", domainName, domainName); + "document.cookie = \"%s=; domain=%s; expires=Thu, 1-Jan-1970 0:0:0 GMT; path=/;\";" + "</script>\n", userNameCookie, domainName, userIDCookie, domainName); /* return to "returnto" URL */ 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; safecpy(brwName,sizeof(brwName), browserName()); safecpy(brwAddr,sizeof(brwAddr), browserAddr()); safecpy(signature,sizeof(signature), mailSignature()); safecpy(returnAddr,sizeof(returnAddr), mailReturnAddr());