зеркало из https://github.com/mozilla/pjs.git
Fix for bug 126571: prevents display of messages to end-users about parameters being removed when an installation upgrades to a later
version of Bugzilla from which some parameters have been removed. Patch by Myk Melez <myk@mozilla.org> 2xr=gerv
This commit is contained in:
Родитель
b24486a830
Коммит
e2fc83a806
|
@ -101,16 +101,6 @@ use strict;
|
||||||
# this way we can look in the symbol table to see if they've been declared
|
# this way we can look in the symbol table to see if they've been declared
|
||||||
# yet or not.
|
# yet or not.
|
||||||
|
|
||||||
# Trim whitespace from front and back.
|
|
||||||
|
|
||||||
sub trim {
|
|
||||||
($_) = (@_);
|
|
||||||
s/^\s+//g;
|
|
||||||
s/\s+$//g;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Check required module
|
# Check required module
|
||||||
|
@ -535,6 +525,16 @@ my @my_priorities = @{*{$main::{'priorities'}}{ARRAY}};
|
||||||
my @my_platforms = @{*{$main::{'platforms'}}{ARRAY}};
|
my @my_platforms = @{*{$main::{'platforms'}}{ARRAY}};
|
||||||
my @my_opsys = @{*{$main::{'opsys'}}{ARRAY}};
|
my @my_opsys = @{*{$main::{'opsys'}}{ARRAY}};
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Global Utility Library
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
# Use the Bugzilla utility library for various functions. We do this
|
||||||
|
# here rather than at the top of the file so globals.pl doesn't define
|
||||||
|
# localconfig variables for us before we get a chance to check for
|
||||||
|
# their existence and create them if they don't exist. Also, globals.pl
|
||||||
|
# removes $ENV{'path'}, which we need in order to run `which mysql` above.
|
||||||
|
require "globals.pl";
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Check data directory
|
# Check data directory
|
||||||
|
@ -1375,7 +1375,7 @@ while (my ($tabname, $fielddef) = each %table) {
|
||||||
# Populate groups table
|
# Populate groups table
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
sub GroupExists ($)
|
sub GroupDoesExist ($)
|
||||||
{
|
{
|
||||||
my ($name) = @_;
|
my ($name) = @_;
|
||||||
my $sth = $dbh->prepare("SELECT name FROM groups WHERE name='$name'");
|
my $sth = $dbh->prepare("SELECT name FROM groups WHERE name='$name'");
|
||||||
|
@ -1396,7 +1396,7 @@ sub AddGroup {
|
||||||
my ($name, $desc, $userregexp) = @_;
|
my ($name, $desc, $userregexp) = @_;
|
||||||
$userregexp ||= "";
|
$userregexp ||= "";
|
||||||
|
|
||||||
return if GroupExists($name);
|
return if GroupDoesExist($name);
|
||||||
|
|
||||||
# get highest bit number
|
# get highest bit number
|
||||||
my $sth = $dbh->prepare("SELECT bit FROM groups ORDER BY bit DESC");
|
my $sth = $dbh->prepare("SELECT bit FROM groups ORDER BY bit DESC");
|
||||||
|
@ -1435,12 +1435,12 @@ AddGroup 'editkeywords', 'Can create, destroy, and edit keywords.';
|
||||||
# code that updates the database structure.
|
# code that updates the database structure.
|
||||||
&AddField('profiles', 'groupset', 'bigint not null');
|
&AddField('profiles', 'groupset', 'bigint not null');
|
||||||
|
|
||||||
if (!GroupExists("editbugs")) {
|
if (!GroupDoesExist("editbugs")) {
|
||||||
my $id = AddGroup('editbugs', 'Can edit all aspects of any bug.', ".*");
|
my $id = AddGroup('editbugs', 'Can edit all aspects of any bug.', ".*");
|
||||||
$dbh->do("UPDATE profiles SET groupset = groupset | $id");
|
$dbh->do("UPDATE profiles SET groupset = groupset | $id");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!GroupExists("canconfirm")) {
|
if (!GroupDoesExist("canconfirm")) {
|
||||||
my $id = AddGroup('canconfirm', 'Can confirm a bug.', ".*");
|
my $id = AddGroup('canconfirm', 'Can confirm a bug.', ".*");
|
||||||
$dbh->do("UPDATE profiles SET groupset = groupset | $id");
|
$dbh->do("UPDATE profiles SET groupset = groupset | $id");
|
||||||
}
|
}
|
||||||
|
@ -1788,39 +1788,6 @@ _End_Of_SQL_
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub Crypt {
|
|
||||||
# Crypts a password, generating a random salt to do it.
|
|
||||||
# Random salts are generated because the alternative is usually
|
|
||||||
# to use the first two characters of the password itself, and since
|
|
||||||
# the salt appears in plaintext at the beginning of the crypted
|
|
||||||
# password string this has the effect of revealing the first two
|
|
||||||
# characters of the password to anyone who views the crypted version.
|
|
||||||
|
|
||||||
my ($password) = @_;
|
|
||||||
|
|
||||||
# The list of characters that can appear in a salt. Salts and hashes
|
|
||||||
# are both encoded as a sequence of characters from a set containing
|
|
||||||
# 64 characters, each one of which represents 6 bits of the salt/hash.
|
|
||||||
# The encoding is similar to BASE64, the difference being that the
|
|
||||||
# BASE64 plus sign (+) is replaced with a forward slash (/).
|
|
||||||
my @saltchars = (0..9, 'A'..'Z', 'a'..'z', '.', '/');
|
|
||||||
|
|
||||||
# Generate the salt. We use an 8 character (48 bit) salt for maximum
|
|
||||||
# security on systems whose crypt uses MD5. Systems with older
|
|
||||||
# versions of crypt will just use the first two characters of the salt.
|
|
||||||
my $salt = '';
|
|
||||||
for ( my $i=0 ; $i < 8 ; ++$i ) {
|
|
||||||
$salt .= $saltchars[rand(64)];
|
|
||||||
}
|
|
||||||
|
|
||||||
# Crypt the password.
|
|
||||||
my $cryptedpassword = crypt($password, $salt);
|
|
||||||
|
|
||||||
# Return the crypted password.
|
|
||||||
return $cryptedpassword;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
@ -2773,4 +2740,18 @@ if (GetFieldDef("logincookies", "hostname")) {
|
||||||
# Final checks...
|
# Final checks...
|
||||||
|
|
||||||
unlink "data/versioncache";
|
unlink "data/versioncache";
|
||||||
|
|
||||||
|
# Remove parameters from the data/params file that no longer exist in Bugzilla.
|
||||||
|
require "data/params";
|
||||||
|
require "defparams.pl";
|
||||||
|
use vars @::param_list;
|
||||||
|
foreach my $item (keys %::param) {
|
||||||
|
if (!grep($_ eq $item, @::param_list) && $item ne "version") {
|
||||||
|
print "The $item parameter is no longer used in Bugzilla\n" .
|
||||||
|
"and has been removed from your parameters file.\n";
|
||||||
|
delete $::param{$item};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WriteParams();
|
||||||
|
|
||||||
print "Reminder: Bugzilla now requires version 8.7 or later of sendmail.\n";
|
print "Reminder: Bugzilla now requires version 8.7 or later of sendmail.\n";
|
||||||
|
|
Загрузка…
Ссылка в новой задаче