]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Added the ability to configure bugzilla so that we only allow local
authorterry%mozilla.org <>
Tue, 15 Jun 1999 00:33:51 +0000 (00:33 +0000)
committerterry%mozilla.org <>
Tue, 15 Jun 1999 00:33:51 +0000 (00:33 +0000)
usernames for email addresses.

CGI.pl
defparams.pl
processmail

diff --git a/CGI.pl b/CGI.pl
index 20e813c98d3e1d9679d0eb83f6b465cd95c307a1..ad15503bf8a7a97b7441a528373a689550702d2c 100644 (file)
--- 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 "<H1>Invalid e-mail address entered.</H1>\n";
         print "The e-mail address you entered\n";
         print "(<b>$addr</b>) 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 "<p>Please click <b>back</b> 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;
index c471ebd62196488d69d915b6965b008ba32ae4ad..2f4bef52e8465da03bb76d95aec92f154448e93e 100644 (file)
@@ -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 <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;
 
index a04bed6ab3953636e945ff30635b67fd0e6da52b..a0a080b16a482f4c456476d5e6ca74c3007a1fa5 100755 (executable)
@@ -239,7 +239,7 @@ sub fixaddresses {
         }
         
         if (!defined $::nomail{$i} && !defined $seen{$i}) {
-            push @result, $i;
+            push(@result, $i . Param('emailsuffix'));
             $seen{$i} = 1;
         }
     }