Introduce noplainemail option to hide email adresses from spambots

Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
This commit is contained in:
Martin Szulecki 2009-08-07 14:05:17 +02:00
parent 286a905842
commit 2f56e390f0
7 changed files with 22 additions and 7 deletions

2
cgit.c
View File

@ -51,6 +51,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.virtual_root = ""; ctx.cfg.virtual_root = "";
} else if (!strcmp(name, "nocache")) } else if (!strcmp(name, "nocache"))
ctx.cfg.nocache = atoi(value); ctx.cfg.nocache = atoi(value);
else if (!strcmp(name, "noplainemail"))
ctx.cfg.noplainemail = atoi(value);
else if (!strcmp(name, "noheader")) else if (!strcmp(name, "noheader"))
ctx.cfg.noheader = atoi(value); ctx.cfg.noheader = atoi(value);
else if (!strcmp(name, "snapshots")) else if (!strcmp(name, "snapshots"))

1
cgit.h
View File

@ -168,6 +168,7 @@ struct cgit_config {
int max_repodesc_len; int max_repodesc_len;
int max_stats; int max_stats;
int nocache; int nocache;
int noplainemail;
int noheader; int noheader;
int renamelimit; int renamelimit;
int snapshots; int snapshots;

View File

@ -158,6 +158,10 @@ nocache::
deprecated, and will not be honored starting with cgit-1.0. Default deprecated, and will not be honored starting with cgit-1.0. Default
value: "0". value: "0".
noplainemail::
If set to "1" showing full author email adresses will be disabled.
Default value: "0".
noheader:: noheader::
Flag which, when set to "1", will make cgit omit the standard header Flag which, when set to "1", will make cgit omit the standard header
on all pages. Default value: none. See also: "embedded". on all pages. Default value: none. See also: "embedded".

View File

@ -32,7 +32,7 @@ void add_entry(struct commit *commit, char *host)
html_txt(info->author); html_txt(info->author);
html("</name>\n"); html("</name>\n");
} }
if (info->author_email) { if (info->author_email && !ctx.cfg.noplainemail) {
mail = xstrdup(info->author_email); mail = xstrdup(info->author_email);
t = strchr(mail, '<'); t = strchr(mail, '<');
if (t) if (t)

View File

@ -40,15 +40,19 @@ void cgit_print_commit(char *hex)
html("<table summary='commit info' class='commit-info'>\n"); html("<table summary='commit info' class='commit-info'>\n");
html("<tr><th>author</th><td>"); html("<tr><th>author</th><td>");
html_txt(info->author); html_txt(info->author);
html(" "); if (!ctx.cfg.noplainemail) {
html_txt(info->author_email); html(" ");
html_txt(info->author_email);
}
html("</td><td class='right'>"); html("</td><td class='right'>");
cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time); cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time);
html("</td></tr>\n"); html("</td></tr>\n");
html("<tr><th>committer</th><td>"); html("<tr><th>committer</th><td>");
html_txt(info->committer); html_txt(info->committer);
html(" "); if (!ctx.cfg.noplainemail) {
html_txt(info->committer_email); html(" ");
html_txt(info->committer_email);
}
html("</td><td class='right'>"); html("</td><td class='right'>");
cgit_print_date(info->committer_date, FMT_LONGDATE, ctx.cfg.local_time); cgit_print_date(info->committer_date, FMT_LONGDATE, ctx.cfg.local_time);
html("</td></tr>\n"); html("</td></tr>\n");

View File

@ -108,7 +108,11 @@ void cgit_print_patch(char *hex)
ctx.page.filename = patchname; ctx.page.filename = patchname;
cgit_print_http_headers(&ctx); cgit_print_http_headers(&ctx);
htmlf("From %s Mon Sep 17 00:00:00 2001\n", sha1_to_hex(sha1)); htmlf("From %s Mon Sep 17 00:00:00 2001\n", sha1_to_hex(sha1));
htmlf("From: %s %s\n", info->author, info->author_email); htmlf("From: %s", info->author);
if (!ctx.cfg.noplainemail) {
htmlf(" %s", info->author_email);
}
html("\n");
html("Date: "); html("Date: ");
cgit_print_date(info->author_date, "%a, %d %b %Y %H:%M:%S %z%n", ctx.cfg.local_time); cgit_print_date(info->author_date, "%a, %d %b %Y %H:%M:%S %z%n", ctx.cfg.local_time);
htmlf("Subject: %s\n\n", info->subject); htmlf("Subject: %s\n\n", info->subject);

View File

@ -64,7 +64,7 @@ void cgit_print_tag(char *revname)
if (info->tagger) { if (info->tagger) {
html("<tr><td>Tagged by</td><td>"); html("<tr><td>Tagged by</td><td>");
html_txt(info->tagger); html_txt(info->tagger);
if (info->tagger_email) { if (info->tagger_email && !ctx.cfg.noplainemail) {
html(" "); html(" ");
html_txt(info->tagger_email); html_txt(info->tagger_email);
} }