From: terry%mozilla.org <> Date: Tue, 15 Jun 1999 00:33:51 +0000 (+0000) Subject: Added the ability to configure bugzilla so that we only allow local X-Git-Tag: bugzilla-2.6~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9470b0400e94e5629f24592b8e438e8eca5851c;p=thirdparty%2Fbugzilla.git Added the ability to configure bugzilla so that we only allow local usernames for email addresses. --- diff --git a/CGI.pl b/CGI.pl index 20e813c98d..ad15503bf8 100644 --- a/CGI.pl +++ b/CGI.pl @@ -316,16 +316,15 @@ sub quietly_check_login() { sub CheckEmailSyntax { my ($addr) = (@_); - if ($addr !~ /^[^@, ]*@[^@, ]*\.[^@, ]*$/) { + my $match = Param('emailregexp'); + if ($addr !~ /$match/) { print "Content-type: text/html\n\n"; print "

Invalid e-mail address entered.

\n"; print "The e-mail address you entered\n"; print "($addr) didn't match our minimal\n"; - print "syntax checking for a legal email address. A legal\n"; - print "address must contain exactly one '\@', and at least one\n"; - print "'.' after the \@, and may not contain any commas or.\n"; - print "spaces.\n"; + print "syntax checking for a legal email address.\n"; + print Param('emailregexpdesc'); print "

Please click back and try again.\n"; exit; } @@ -351,7 +350,8 @@ To use the wonders of bugzilla, you can use the following: (Your bugzilla and CVS password, if any, are not currently synchronized. Top hackers are working around the clock to fix this, as you read this.) "; - my $msg = sprintf($template, $login, $login, $password); + my $msg = sprintf($template, $login . Param('emailsuffix'), + $login, $password); open SENDMAIL, "|/usr/lib/sendmail -t"; print SENDMAIL $msg; diff --git a/defparams.pl b/defparams.pl index c471ebd621..2f4bef52e8 100644 --- a/defparams.pl +++ b/defparams.pl @@ -307,5 +307,21 @@ DefParam("expectbigqueries", "b", 0); +DefParam("emailregexp", + 'This defines the regexp to use for legal email addresses. The default tries to match fully qualified email addresses. Another popular value to put here is ^[^@, ]$, which means "local usernames, no @ allowed.', + "t", + q:^[^@, ]*@[^@, ]*\\.[^@, ]*$:); + +DefParam("emailregexpdesc", + "This describes in english words what kinds of legal addresses are allowed by the emailregexp param.", + "l", + "A legal address must contain exactly one '\@', and at least one '.' after the \@, and may not contain any commas or spaces."); + +DefParam("emailsuffix", + "This is a string to append to any email addresses when actually sending mail to that address. It is useful if you have changed the emailregexp param to only allow local usernames, but you want the mail to be delivered to username\@my.local.hostname.", + "t", + ""); + + 1; diff --git a/processmail b/processmail index a04bed6ab3..a0a080b16a 100755 --- a/processmail +++ b/processmail @@ -239,7 +239,7 @@ sub fixaddresses { } if (!defined $::nomail{$i} && !defined $seen{$i}) { - push @result, $i; + push(@result, $i . Param('emailsuffix')); $seen{$i} = 1; } }