4898794edd81be5285ea6e544acbedeaeb31bf78 max Tue Nov 23 08:10:57 2021 -0800 Fixing pointers to README file for license in all source code files. refs #27614 diff --git src/hg/encode3/encodeDataWarehouse/edwWebRegisterScript/edwWebRegisterScript.c src/hg/encode3/encodeDataWarehouse/edwWebRegisterScript/edwWebRegisterScript.c index 5cf30d6..80f9114 100644 --- src/hg/encode3/encodeDataWarehouse/edwWebRegisterScript/edwWebRegisterScript.c +++ src/hg/encode3/encodeDataWarehouse/edwWebRegisterScript/edwWebRegisterScript.c @@ -1,164 +1,164 @@ /* edwWebRegisterScript - Create a user ID for a script, since scripts have a hard time with Persona.. */ /* Copyright (C) 2014 The Regents of the University of California - * See README in this or parent directory for licensing information. */ + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include #include "common.h" #include "linefile.h" #include "hash.h" #include "options.h" #include "errAbort.h" #include "jksql.h" #include "hex.h" #include "cheapcgi.h" #include "htmshell.h" #include "encodeDataWarehouse.h" #include "edwLib.h" void usage() /* Explain usage and exit. */ { errAbort( "edwWebRegisterScript - Register a script, giving it a random access key. " "This program is meant to be called as a CGI from a web server using HTTPS."); } #define HEXED_32_SIZE 33 /* Size of 32 hexadecimal digits plus zero tag */ void edwRandomHexed32(char hexed[HEXED_32_SIZE]) /* Create a string of random hexadecimal digits 32 digits long. Add zero tag at end*/ { /* Generate 16 bytes of random sequence with uuid generator */ unsigned char uuid[16]; uuid_generate(uuid); /* Convert to hex. */ hexBinaryString(uuid, 16, hexed, HEXED_32_SIZE); } void edwRandomBabble(char *babble, int babbleSize) /* Create a string of random syllables . */ { /* Generate 16 bytes of random sequence with uuid generator */ unsigned char uuid[16]; uuid_generate(uuid); unsigned long ul; memcpy(&ul, uuid, sizeof(ul)); edwMakeBabyName(ul, babble, babbleSize); } char *userEmail = NULL; static void localWarn(char *format, va_list args) /* A little warning handler to override the one with the button that goes nowhere. */ { printf("Error: "); vfprintf(stdout, format, args); } void edwRegisterScript(struct sqlConnection *conn, struct edwUser *user, char *name, char *password, char *description) /* Register a new script with the database. */ { struct edwScriptRegistry reg = {.userId=user->id, .name=name, .description=description}; char secretHash[EDW_SID_SIZE]; edwMakeSid(password, secretHash); reg.secretHash = secretHash; edwScriptRegistrySaveToDb(conn, ®, "edwScriptRegistry", 256); } char **mainEnv; void dumpEnv(char **env) { char *s; while ((s = *env++) != NULL) printf("%s
\n", s); } void doMiddle() /* Write what goes between BODY and /BODY */ { pushWarnHandler(localWarn); if (!cgiServerHttpsIsOn()) usage(); struct sqlConnection *conn = edwConnectReadWrite(); printf("
\n"); printf("Register Script with ENCODE Data Warehouse
\n"); #ifdef SOON uglyf("HTTP_AUTHENTICATION: '%s'
\n", getenv("HTTP_AUTHENTICATION")); uglyf("HTTP_AUTHORIZATION: '%s'
\n", getenv("HTTP_AUTHORIZATION")); dumpEnv(mainEnv); #endif if (userEmail == NULL) { printf("Please sign in:"); printf(""); } else if (cgiVarExists("description")) { struct edwUser *user = edwUserFromEmail(conn, userEmail); if (user == NULL) edwWarnUnregisteredUser(userEmail); else { char password[HEXED_32_SIZE]; edwRandomHexed32(password); char babyName[HEXED_32_SIZE]; edwRandomBabble(babyName, sizeof(babyName)); edwRegisterScript(conn, user, babyName, password, cgiString("description")); printf("Script now registered.
\n"); printf("The script user name is %s.
\n", babyName); printf("The script password is %s.
\n", password); printf("Please save the script user name and password somewhere. "); puts("Please pass these two and the URL"); puts(" of your validated manifest file (validated.txt) to our server to submit data."); puts("Construct a URL of the form:
"); printf("
https://encodedcc.sdsc.edu/cgi-bin/edwScriptSubmit"
 	       "?user=%s&password=%s&url=%s\n
", babyName, password, cgiEncode("http://your.host.edu/your_dir/validated.txt")); puts("That is pass the CGI encoded variables user, password, and url to the "); puts("web services CGI at:
"); puts("
  https://encodedcc.sdsc.edu/cgi-bin/edwScriptSubmit\n
"); puts("You can monitor the status of the submission programmatically by passing
"); puts("the same user, password, and url variables to:
"); puts("
  https://encodedcc.sdsc.edu/cgi-bin/edwScriptSubmitStatus\n
"); puts("You can also use the http://encodedcc.sdsc.edu/cgi-bin/edwWebBrowse site to "); puts("monitor your submission interactively. Please contact your wrangler if you "); puts("have any questions.
"); cgiMakeButton("submit", "Register another script"); } printf(" "); edwPrintLogOutButton(); } else { struct edwUser *user = edwUserFromEmail(conn, userEmail); edwPrintLogOutButton(); if (user == NULL) edwWarnUnregisteredUser(userEmail); else { printf("%s is authorized to register a new script
\n", userEmail); printf("
Script description:\n"); cgiMakeTextVar("description", NULL, 80); cgiMakeSubmitButton(); } } printf("
\n"); } int main(int argc, char *argv[], char **env) /* Process command line. */ { if (!cgiIsOnWeb()) usage(); mainEnv = env; userEmail = edwGetEmailAndVerify(); edwWebHeaderWithPersona("ENCODE Data Warehouse Register Script"); htmEmptyShell(doMiddle, NULL); edwWebFooterWithPersona(); return 0; }