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/edwWebDeprecate/edwWebDeprecate.c src/hg/encode3/encodeDataWarehouse/edwWebDeprecate/edwWebDeprecate.c
index 1a916b1..7779d88 100644
--- src/hg/encode3/encodeDataWarehouse/edwWebDeprecate/edwWebDeprecate.c
+++ src/hg/encode3/encodeDataWarehouse/edwWebDeprecate/edwWebDeprecate.c
@@ -1,210 +1,210 @@
 /* edwWebDeprecate - A cgi script to mark files as deprecated.. */
 
 /* 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 "common.h"
 #include "obscure.h"
 #include "linefile.h"
 #include "hash.h"
 #include "options.h"
 #include "htmshell.h"
 #include "errAbort.h"
 #include "cheapcgi.h"
 #include "jksql.h"
 #include "encodeDataWarehouse.h"
 #include "edwLib.h"
 
 char *userEmail;	/* Filled in by authentication system. */
 char *fileList = "";
 char *reason = "";
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "edwWebDeprecate - A cgi script to mark files as deprecated.\n"
   "usage:\n"
   "   edwWebDeprecate cgiVar=value cgiVar2=value2\n"
   );
 }
 
 boolean okToShowAllowBox(struct sqlConnection *conn, char *userEmail)
 {
 return edwUserIsAdmin(conn,userEmail);
 };
 
 boolean checkOwnership(struct sqlConnection *conn, int fId, char *userEmail)
 /* Return true if file to be deprecated was submitted by this user. */
 {
 char *email = edwFindOwnerNameFromFileId(conn, fId);
 if (sameString(email, userEmail))
     return TRUE;
 else
     return FALSE;
 }
 
 boolean okToDeprecateThisFile(struct sqlConnection *conn, int fId, char *userEmail)
 /* Return true if it is OK to deprecate this file */
 {
 if (checkOwnership(conn, fId, userEmail))
     return TRUE;
 else if (cgiVarExists("allowBox"))
     return TRUE;
 else
     return FALSE;
 }
 
 void logIn()
 /* Put up name.  No password for now. */
 {
 printf("Deprecate files in ENCODE Data Warehouse.<BR>");
 printf("Please sign in via Persona.");
 printf("<INPUT TYPE=BUTTON NAME=\"signIn\" VALUE=\"sign in\" id=\"signin\">");
 }
 
 void getFileListAndReason(struct sqlConnection *conn)
 /* Put up URL. */
 {
 edwMustGetUserFromEmail(conn, userEmail);
 printf("Please enter in accessions (ENCFF identifiers) for files to deprecate:<BR>");
 cgiMakeTextArea("fileList", fileList, 4, 60);
 printf("<BR>");
 printf("Please enter in reason for deprecating files:<BR>");
 cgiMakeTextArea("reason", reason, 4, 60);
 printf("<BR>");
 if (okToShowAllowBox(conn, userEmail))
     {
     printf("Allow me to deprecate files not uploaded by me:  ");
     cgiMakeCheckBox("allowBox", FALSE);
     printf("<BR>");
     }
 cgiMakeButton("submit", "submit");
 }
 
 static void localWarn(char *format, va_list args)
 /* A little warning handler to override the one with the button that goes nowhere. */
 {
 printf("<FONT color='red'>");
 vfprintf(stdout, format, args);
 printf("</FONT><BR>\n");
 }
 
 void deprecateFileList(struct sqlConnection *conn, struct slInt *idList, char *reason)
 /* Mark list of files defined by ID list as deprecated for given reason */
 {
 struct dyString *dy = dyStringNew(0);
 struct slInt *id;
 for (id = idList; id != NULL; id = id->next)
     {
     dyStringClear(dy);
     sqlDyStringPrintf(dy, "update edwFile set deprecated='%s' where id=%d", reason, id->val);
     sqlUpdate(conn, dy->string);
     }
 dyStringFree(&dy);
 }
 
 void tryToDeprecate(struct sqlConnection *conn)
 /* CGI variables are set - if possible deprecate, otherwise put up error message. */
 {
 pushWarnHandler(localWarn);
 fileList = cgiString("fileList");
 reason = cloneString(trimSpaces(cgiString("reason")));
 if (isEmpty(reason))
    {
    warn("Please enter a reason for deprecation.");
    getFileListAndReason(conn);
    }
 else
    {
    /* Go through list of accessions and make sure they are all well formed and correspond to files that exist. */
    boolean ok = TRUE;
    struct slName *accList = slNameListOfUniqueWords(cloneString(fileList), FALSE);
    struct slName *acc;
    struct slInt *idList = NULL, *idEl;
    for (acc = accList; acc != NULL; acc = acc->next)
        {
        char *licensePlate = acc->name;
        char *prefix = edwLicensePlateHead(conn);
        if (!startsWith(prefix, licensePlate))
            {
 	   ok = FALSE;
 	   warn("%s is not an accession, doesn't start with %s", licensePlate, prefix);
 	   break;
 	   }
 	char query[256];
 	sqlSafef(query, sizeof(query), "select fileId from edwValidFile where licensePlate='%s'", licensePlate);
 	int id = sqlQuickNum(conn, query);
 	if (id == 0)
 	   {
 	   ok = FALSE;
 	   warn("%s - no such accession. ", licensePlate);
 	   break;
 	   }
 	/* check to see is it ok tor deprecate this file */
 	if (!okToDeprecateThisFile(conn, id, userEmail))
 	    {
 	    ok = FALSE;
 	    warn("You can not deprecate %s which was originally uploaded by %s.\n",
 	    licensePlate, edwFindOwnerNameFromFileId(conn, id));
 	    if (okToShowAllowBox(conn, userEmail))
 		warn("Please click the check box below to override this rule.");
 	    break;
 	    }
 
 	idEl = slIntNew(id);
 	slAddTail(&idList, idEl);
 	}
 
     if (accList == NULL)
         {
 	warn("Please enter some file accessions");
 	ok = FALSE;
 	}
 
     /* If a problem then put up page to try again,   otherwise do deprecation. */
     if (!ok)
         getFileListAndReason(conn);
     else
         {
 	deprecateFileList(conn, idList, reason);
 	printf("Deprecated %d files<BR>\n", slCount(idList));
 	cgiMakeButton("submit", "Deprecate More Files");
 	printf(" ");
 	edwPrintLogOutButton();
 	}
     }
 }
 
 
 void doMiddle()
 /* doMiddle - put up middle part of web page, not including http and html headers/footers */
 {
 printf("<FORM ACTION=\"../cgi-bin/edwWebDeprecate\" METHOD=GET>\n");
 struct sqlConnection *conn = edwConnectReadWrite(edwDatabase);
 userEmail = edwGetEmailAndVerify();
 if (userEmail == NULL)
     logIn();
 else if (cgiVarExists("fileList") && cgiVarExists("reason"))
     tryToDeprecate(conn);
 else
     getFileListAndReason(conn);
 printf("</FORM>");
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 boolean isFromWeb = cgiIsOnWeb();
 if (!isFromWeb && !cgiSpoof(&argc, argv))
     usage();
 
 /* Put out HTTP header and HTML HEADER all the way through <BODY> */
 edwWebHeaderWithPersona("Deprecate files in ENCODE Data Warehouse");
 
 /* Call error handling wrapper that catches us so we write /BODY and /HTML to close up page
  * even through an errAbort. */
 htmEmptyShell(doMiddle, NULL);
 
 edwWebFooterWithPersona();
 return 0;
 }