Commit c9470b04 authored by terry%mozilla.org's avatar terry%mozilla.org

Added the ability to configure bugzilla so that we only allow local

usernames for email addresses.
parent 52cf03bd
...@@ -316,16 +316,15 @@ sub quietly_check_login() { ...@@ -316,16 +316,15 @@ sub quietly_check_login() {
sub CheckEmailSyntax { sub CheckEmailSyntax {
my ($addr) = (@_); my ($addr) = (@_);
if ($addr !~ /^[^@, ]*@[^@, ]*\.[^@, ]*$/) { my $match = Param('emailregexp');
if ($addr !~ /$match/) {
print "Content-type: text/html\n\n"; print "Content-type: text/html\n\n";
print "<H1>Invalid e-mail address entered.</H1>\n"; print "<H1>Invalid e-mail address entered.</H1>\n";
print "The e-mail address you entered\n"; print "The e-mail address you entered\n";
print "(<b>$addr</b>) didn't match our minimal\n"; print "(<b>$addr</b>) didn't match our minimal\n";
print "syntax checking for a legal email address. A legal\n"; print "syntax checking for a legal email address.\n";
print "address must contain exactly one '\@', and at least one\n"; print Param('emailregexpdesc');
print "'.' after the \@, and may not contain any commas or.\n";
print "spaces.\n";
print "<p>Please click <b>back</b> and try again.\n"; print "<p>Please click <b>back</b> and try again.\n";
exit; exit;
} }
...@@ -351,7 +350,8 @@ To use the wonders of bugzilla, you can use the following: ...@@ -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. (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.) 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"; open SENDMAIL, "|/usr/lib/sendmail -t";
print SENDMAIL $msg; print SENDMAIL $msg;
......
...@@ -307,5 +307,21 @@ DefParam("expectbigqueries", ...@@ -307,5 +307,21 @@ DefParam("expectbigqueries",
"b", "b",
0); 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 <tt>^[^@, ]$</tt>, which means "local usernames, no @ allowed.',
"t",
q:^[^@, ]*@[^@, ]*\\.[^@, ]*$:);
DefParam("emailregexpdesc",
"This describes in english words what kinds of legal addresses are allowed by the <tt>emailregexp</tt> 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 <tt>emailregexp</tt> param to only allow local usernames, but you want the mail to be delivered to username\@my.local.hostname.",
"t",
"");
1; 1;
...@@ -239,7 +239,7 @@ sub fixaddresses { ...@@ -239,7 +239,7 @@ sub fixaddresses {
} }
if (!defined $::nomail{$i} && !defined $seen{$i}) { if (!defined $::nomail{$i} && !defined $seen{$i}) {
push @result, $i; push(@result, $i . Param('emailsuffix'));
$seen{$i} = 1; $seen{$i} = 1;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment