Introduce noplainemail option to hide email adresses from spambots

Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
Этот коммит содержится в:
Martin Szulecki 2009-08-07 14:05:17 +02:00
родитель 286a905842
Коммит 2f56e390f0
7 изменённых файлов: 22 добавлений и 7 удалений

2
cgit.c
Просмотреть файл

@ -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
Просмотреть файл

@ -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;

Просмотреть файл

@ -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".

Просмотреть файл

@ -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)

Просмотреть файл

@ -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);
if (!ctx.cfg.noplainemail) {
html(" "); html(" ");
html_txt(info->author_email); 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);
if (!ctx.cfg.noplainemail) {
html(" "); html(" ");
html_txt(info->committer_email); 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");

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);
} }