]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Fix for bug 96675: checksetup should require admin e-mail address satisfy emailregexp...
authorzach%zachlipton.com <>
Sun, 28 Oct 2001 11:40:59 +0000 (11:40 +0000)
committerzach%zachlipton.com <>
Sun, 28 Oct 2001 11:40:59 +0000 (11:40 +0000)
checksetup.pl use the emailregexp set in params if the params file exists, or ensures that it matches the
default emailregexp from defparams.pl.

r1=justdave, r2=bbaetz.

checksetup.pl

index 424a23ca04c17dae2c062e9364fea7eb704750a5..9c4474160c8f1f30a646e313396fa66bf99466b8 100755 (executable)
@@ -79,7 +79,7 @@
 #     add more MySQL-related checks                    --MYSQL--
 #     change table definitions                         --TABLE--
 #     add more groups                                  --GROUPS--
-#     create initial administrator account            --ADMIN--
+#     create initial administrator account             --ADMIN--
 #
 # Note: sometimes those special comments occur more then once. For
 # example, --LOCAL-- is at least 3 times in this code!  --TABLE--
@@ -1488,6 +1488,23 @@ if ($sth->rows == 0) {
   my $pass2 = "*";
   my $admin_ok = 0;
   my $admin_create = 1;
+  my $mailcheckexp = "";
+  my $mailcheck    = ""; 
+
+  # Here we look to see what the emailregexp is set to so we can 
+  # check the email addy they enter. Bug 96675. If they have no 
+  # params (likely but not always the case), we use the default.
+  if (-e "data/params") { 
+    require "data/params"; # if they have a params file, use that
+  }
+  if ($::params{emailregexp}) {
+    $mailcheckexp = $::params{emailregexp};
+    $mailcheck    = $::params{emailregexpdesc};
+  } else {
+    $mailcheckexp = '^[^@]+@[^@]+\\.[^@]+$';
+    $mailcheck    = 'A legal address must contain exactly one \'@\', 
+      and at least one \'.\' after the @.';
+  }
 
   print "\nLooks like we don't have an administrator set up yet.  Either this is your\n";
   print "first time using Bugzilla, or your administrator's privs might have accidently\n";
@@ -1500,6 +1517,11 @@ if ($sth->rows == 0) {
       if(! $login ) {
         print "\nYou DO want an administrator, don't you?\n";
       }
+      unless ($login =~ /$mailcheckexp/) {
+        print "\nThe login address is invalid:\n";
+        print "$mailcheck\n";
+        die "Please try again\n";
+      }
     }
     $login = $dbh->quote($login);
     $sth = $dbh->prepare(<<_End_Of_SQL_);