src/hg/instinct/webUserAdmin/webUserAdmin.c 1.14

1.14 2010/04/23 20:54:44 sbenz
Lots of changes, including header which needs to be customized per server
Index: src/hg/instinct/webUserAdmin/webUserAdmin.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/webUserAdmin/webUserAdmin.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -b -B -U 4 -r1.13 -r1.14
--- src/hg/instinct/webUserAdmin/webUserAdmin.c	8 Feb 2010 21:42:17 -0000	1.13
+++ src/hg/instinct/webUserAdmin/webUserAdmin.c	23 Apr 2010 20:54:44 -0000	1.14
@@ -395,8 +395,38 @@
 
 hPrintf("</FORM>");
 }
 
+
+void activateWebUserPage(struct sqlConnection *conn)
+/* activate a user page */
+{
+hPrintf(
+"<h2>%s</h2>"
+"<p align=\"left\">"
+"</p>"
+"<font color=red>%s</font>"
+"<h3>Activate a web user</h3>"
+"<form method=post action=\"webUserAdmin\" name=activateWebUserForm >"
+"<table>"
+"<tr><td>E-mail of the user to be activated: </td><td><input type=text name=webUser_email size=20 value=\"%s\"> "
+  "</td></tr>"
+"<tr><td>Admin Password</td><td><input type=password name=webUser_adminPassword value=\"\" size=10></td></tr>\n"
+"<tr><td>&nbsp;</td><td><input type=submit name=webUserAdmin.do.activateWebUser value=activate>"
+"&nbsp;<input type=submit name=webUserAdmin.do.signupPage value=cancel></td></tr>"
+"</table>"
+"<br>"
+, siteName
+, errMsg ? errMsg : ""
+, cartUsualString(cart, "webUser_email", "")
+);
+
+cartSaveSession(cart);
+
+hPrintf("</FORM>");
+}
+
+
 void registerBatchWebUsers(struct sqlConnection *conn)
 /* process activate web user form */
 {
 char query[256];
@@ -420,8 +450,16 @@
     }
 
 safef(query,sizeof(query), "select password from webUsers where email='%s'", adminEmail);
 char *adminPassword = sqlQuickString(conn, query);
+if(!adminPassword)
+	{
+    freez(&errMsg);
+    errMsg = cloneString("Unable to find admin email in database.");
+    activateWebUserPage(conn);
+    return;	
+	}
+
 if (!checkPwd(adminPasswordEntered, adminPassword))
     {
     freez(&errMsg);
     errMsg = cloneString("Wrong admin password.");
@@ -443,15 +481,15 @@
 	    char encPwd[35] = "";
 	    char *webUserEmail;
 	    
 	    webUserEmail = line;
-	    safef(query,sizeof(query), "insert into webUsers set email='%s'", webUserEmail);
+	    safef(query,sizeof(query), "insert ignore into webUsers set email='%s'", webUserEmail);
 	    sqlGetResult(conn, query);
 	    encryptNewPwd(password, encPwd, sizeof(encPwd));
 
 	    safef(query,sizeof(query), 
 		  "update webUsers set password='%s', name='%s', activated='Y' where email='%s'", 
-		  sqlEscapeString(encPwd), password, sqlEscapeString(webUserEmail));
+		  sqlEscapeString(encPwd), sqlEscapeString(webUserEmail), sqlEscapeString(webUserEmail));
 		  // !!! remove inserting password later by replacing the above 2 lines:
 		  //"update webUsers set password='%s', activated='Y'  where email='%s'", 
 		  //sqlEscapeString(encPwd), sqlEscapeString(webUserEmail));
 
@@ -483,36 +521,8 @@
     }	
 return;
 }
 
-void activateWebUserPage(struct sqlConnection *conn)
-/* activate a user page */
-{
-hPrintf(
-"<h2>%s</h2>"
-"<p align=\"left\">"
-"</p>"
-"<font color=red>%s</font>"
-"<h3>Activate a web user</h3>"
-"<form method=post action=\"webUserAdmin\" name=activateWebUserForm >"
-"<table>"
-"<tr><td>E-mail of the user to be activated: </td><td><input type=text name=webUser_email size=20 value=\"%s\"> "
-  "</td></tr>"
-"<tr><td>Admin Password</td><td><input type=password name=webUser_adminPassword value=\"\" size=10></td></tr>\n"
-"<tr><td>&nbsp;</td><td><input type=submit name=webUserAdmin.do.activateWebUser value=activate>"
-"&nbsp;<input type=submit name=webUserAdmin.do.signupPage value=cancel></td></tr>"
-"</table>"
-"<br>"
-, siteName
-, errMsg ? errMsg : ""
-, cartUsualString(cart, "webUser_email", "")
-);
-
-cartSaveSession(cart);
-
-hPrintf("</FORM>");
-}
-
 void activateWebUser(struct sqlConnection *conn)
 /* process activate web user form */
 {
 char query[256];
@@ -953,9 +963,9 @@
 */
 
 char encPwd[35] = "";
 encryptNewPwd(password, encPwd, sizeof(encPwd));
-safef(query,sizeof(query), "insert into webUsers set "
+safef(query,sizeof(query), "insert ignore into webUsers set "
     "email='%s',password='%s',activated='%s',name='%s',phone='%s',institution='%s'", 
     sqlEscapeString(email), sqlEscapeString(encPwd), "N", sqlEscapeString(name), sqlEscapeString(phone), sqlEscapeString(institution));
 sqlUpdate(conn, query);
 
@@ -1119,8 +1129,39 @@
 slFreeList(&list);
 }
 */
 
+void createWebHeader()
+{
+hPrintf("<link type=\"text/css\" rel=\"stylesheet\" href=\"/style/HGStyle.css\">"
+"<style> body { background: white; } </style>"
+"  <!-- Header Images and links --> "
+"    <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"100%%\"> "
+"      <TR> "
+"        <TH COLSPAN=2 ALIGN=\"left\"> "
+"          <a href=\"/\"><IMG SRC=\"/images/genome_cancer_su2c_logo.png\" ALT=\"SU2C Cancer Genomics Browser\" style=\"width: 700px;\"></a> "
+"        </TH> "
+"      </TR> "
+" "
+"   <!-- Top bar --> "
+"      <TR><TD COLSPAN=2 HEIGHT=40><!-- This file generates the top menu bar on Genome Browser home page--> "
+"<!-- which has a different menu from the other static pages------------> "
+" "
+"  <TABLE BGCOLOR=\"000000\" CELLPADDING=\"1\" CELLSPACING=\"1\" WIDTH=\"100%%\" HEIGHT=\"27\"> "
+"    <TR BGCOLOR=\"2636D1\"><TD VALIGN=\"middle\"> "
+"      <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=\"2636D1\" HEIGHT=\"24\"> "
+"	<TR><TD VALIGN=\"middle\"><FONT COLOR=\"#89A1DE\">&nbsp;&nbsp;"
+"	  <A HREF=\"/hgHeatmap\" class=\"topbar\">Cancer Genomics</A>&nbsp;&nbsp;-&nbsp;&nbsp;"
+"	  <A HREF=\"/cgi-bin/hgGateway\" class=\"topbar\">Genomes</A>&nbsp;&nbsp;-&nbsp;&nbsp;"
+"	  <A HREF=\"/cancerGenomics/help/userGuide/userGuide.html\" class=\"topbar\">Help</A> "
+"	</FONT></TD></TR> "
+"      </TABLE> "
+"    </TD></TR> "
+"  </TABLE> "
+"<!-- end topbar --> "
+"</TD></TR></TABLE>");
+}
+
 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. */
@@ -1131,8 +1172,9 @@
 	errAbort("Missing required hg.conf variables.\n"
 			 "Please set the following:\n"
 			 "hostname, siteName, adminEmail");
 
+createWebHeader();
 cart = theCart;
 if (cartVarExists(cart, "debug"))
     debugShowAllMembers(conn);
 else if (cartVarExists(cart, "update"))