966c79a611f11fa5185cbb417f5bd74f5bf43d57 chinhli Mon Jul 1 14:24:13 2013 -0700 To DO 11139 Upgrade to hgUserSuggestion spam blocking. diff --git src/hg/hgUserSuggestion/hgUserSuggestion.c src/hg/hgUserSuggestion/hgUserSuggestion.c index 58e2c98..8d4e1e9 100644 --- src/hg/hgUserSuggestion/hgUserSuggestion.c +++ src/hg/hgUserSuggestion/hgUserSuggestion.c @@ -125,37 +125,32 @@ if (*c == '.') { if (c == domain || *(c - 1) == '.') return 0; count++; } if (*c <= ' ' || *c >= 127) return 0; if (strchr(rfc822_specials, *c)) return 0; } while (*++c); return (count >= 1); } boolean validateCategory(char *category) /* Validate the Category from the request */ { -const char *cat[5]; -cat[0] = "Tracks"; -cat[1] = "Genome Assemblies"; -cat[2] = "Browser Tools"; -cat[3] = "Command-line Utilities"; -cat[4] = "Others"; - +const char *cat[5] = {"Tracks", "Genome Assemblies", "Browser Tools", + "Command-line Utilities", "Others"}; int i; for(i=0;i<5;i++) { if (strcmp(cat[i], category)==0) return TRUE; } return FALSE; } /* javascript functions */ void printMainForm() /* Create the main suggestion form */ { hPrintf( "
\n"); @@ -172,30 +167,31 @@ "

\n" "

\n" "

\n"); hPrintf( "

\n"); hPrintf( "

\n" "


\n" + "" " \n"); hPrintf( "

\n" " \n" " \n" "

\n"); hPrintf( "
\n" " \n" " \n" "
\n" " \n" "
\n\n"); } @@ -341,32 +337,44 @@ "contacting us and quoting your reference number:

%s

" "A copy of this information has also been sent to you at %s.

", refID, userAddr); hPrintf( "

Click here if you wish to make additional suggestions.

"); hPrintf( "

" "Your suggestion summary:
" "%s
" "Your suggestion details:
" "

%s
" "

", summary, details); } +void printInvalidForm() +/* display invalid form page */ +{ +hPrintf( + "

Invalid Form.

"); +hPrintf( + "

" + "The form is invalid. Please correct it and " + "submit again.

" + ); +} + void printInvalidCategory(char *invalidCategory) -/* display suggestion confirm page */ +/* display invalid category page */ { hPrintf( "

Invalid Category.

"); hPrintf( "

" "The category \"%s\" is invalid. Please correct it and " "submit again.

", invalidCategory); } void printInvalidEmailAddr(char *invalidEmailAddr) /* display suggestion confirm page */ { hPrintf( "

Invalid email address format.

"); @@ -427,36 +435,44 @@ //cartSaveSession(cart); } void submitSuggestion() /* send the suggestion to ,.. */ { /* parameters from hg.cong */ char *filter=filterKeyword(); /* values from cart */ char *sName=cartUsualString(cart,"suggestName",""); char *sEmail=cartUsualString(cart,"suggestEmail",""); char *sCategory=cartUsualString(cart,"suggestCategory",""); char *sSummary=cartUsualString(cart,"suggestSummary",""); char *sDetails=cartUsualString(cart,"suggestDetails",""); - +char *sWebsite=cartUsualString(cart,"suggestWebsite",""); char suggestID[512]; safef(suggestID, sizeof(suggestID),"%s %s", sEmail, now()); char subject[512]; safef(subject, sizeof(subject),"%s %s", filter, suggestID); +/* reject if the hidden field is not blank */ +if (isNotEmpty(sWebsite)) +{ + printInvalidForm(); + cartSetString(cart, "suggestWebsite", ""); + return; +} + /* reject suggestion if category is invalid */ if (!validateCategory(sCategory)) { printInvalidCategory(sCategory); return; } /* Send back suggestion only with valid user email address */ if (spc_email_isvalid(sEmail) != 0) { /* send back the suggestion */ sendSuggestionBack(sName, sEmail, sCategory, sSummary, sDetails, suggestID); /* send confirmation mail to user */ sendConfirmMail(sEmail,suggestID, sSummary, sDetails); /* display confirmation page */