Commit 3e31437c authored by Per Cederqvist's avatar Per Cederqvist

Imported Bugzilla 4.4.2.

parent 8b0e4c41
This is a Bazaar control directory.
Do not change any files in this directory.
See http://bazaar.canonical.com/ for more information about Bazaar.
See http://bazaar-vcs.org/ for more information about Bazaar.
No preview for this file type
......@@ -104,7 +104,7 @@ sub logout {
$login_cookie = $cookie->value;
}
else {
$login_cookie = $cgi->cookie("Bugzilla_logincookie");
$login_cookie = $cgi->cookie("Bugzilla_logincookie") || '';
}
trick_taint($login_cookie);
......
......@@ -87,15 +87,17 @@ sub Send {
if ($params->{dep_only}) {
push(@diffs, { field_name => 'bug_status',
old => $params->{changes}->{bug_status}->[0],
new => $params->{changes}->{bug_status}->[1],
old => $params->{changes}->{bug_status}->[0],
new => $params->{changes}->{bug_status}->[1],
login_name => $changer->login,
blocker => $params->{blocker} },
who => $changer,
blocker => $params->{blocker} },
{ field_name => 'resolution',
old => $params->{changes}->{resolution}->[0],
new => $params->{changes}->{resolution}->[1],
old => $params->{changes}->{resolution}->[0],
new => $params->{changes}->{resolution}->[1],
login_name => $changer->login,
blocker => $params->{blocker} });
who => $changer,
blocker => $params->{blocker} });
}
else {
push(@diffs, _get_diffs($bug, $end, \%user_cache));
......@@ -494,7 +496,10 @@ sub _get_new_bugmail_fields {
# If there isn't anything to show, don't include this header.
next unless $value;
push(@diffs, {field_name => $name, new => $value});
push(@diffs, {
field_name => $name,
who => $bug->reporter,
new => $value});
}
return @diffs;
......
......@@ -265,9 +265,24 @@ sub multipart_start {
$headers .= "Set-Cookie: ${cookie}${CGI::CRLF}";
}
$headers .= $CGI::CRLF;
$self->{_multipart_in_progress} = 1;
return $headers;
}
sub close_standby_message {
my ($self, $contenttype, $disposition) = @_;
if ($self->{_multipart_in_progress}) {
print $self->multipart_end();
print $self->multipart_start(-type => $contenttype,
-content_disposition => $disposition);
}
else {
print $self->header(-type => $contenttype,
-content_disposition => $disposition);
}
}
# Override header so we can add the cookies in
sub header {
my $self = shift;
......@@ -632,6 +647,15 @@ instead of calling this directly.
Redirects from the current URL to one prefixed by the urlbase parameter.
=item C<multipart_start>
Starts a new part of the multipart document using the specified MIME type.
If not specified, text/html is assumed.
=item C<close_standby_message>
Ends a part of the multipart document, and starts another part.
=back
=head1 SEE ALSO
......
......@@ -417,10 +417,10 @@ use constant is_default => 0;
sub is_set_on_bug {
my ($self, $bug) = @_;
# We treat it like a hash always, so that we don't have to check if it's
# a hash or an object.
return 0 if !defined $bug->{component_id};
$bug->{component_id} == $self->id ? 1 : 0;
my $value = blessed($bug) ? $bug->component_id : $bug->{component};
$value = $value->id if blessed($value);
return 0 unless $value;
return $value == $self->id ? 1 : 0;
}
###############################
......@@ -506,7 +506,7 @@ Component.pm represents a Product Component object.
Returns: Integer with the number of bugs.
=item C<bugs_ids()>
=item C<bug_ids()>
Description: Returns all bug IDs that belong to the component.
......
......@@ -182,7 +182,7 @@ use Memoize;
# CONSTANTS
#
# Bugzilla version
use constant BUGZILLA_VERSION => "4.4.1";
use constant BUGZILLA_VERSION => "4.4.2";
# Location of the remote and local XML files to track new releases.
use constant REMOTE_FILE => 'http://updates.bugzilla.org/bugzilla-update.xml';
......@@ -592,6 +592,13 @@ use constant AUDIT_CREATE => '__create__';
use constant AUDIT_REMOVE => '__remove__';
sub bz_locations {
# Force memoize() to re-compute data per project, to avoid
# sharing the same data across different installations.
return _bz_locations($ENV{'PROJECT'});
}
sub _bz_locations {
my $project = shift;
# We know that Bugzilla/Constants.pm must be in %INC at this point.
# So the only question is, what's the name of the directory
# above it? This is the most reliable way to get our current working
......@@ -608,12 +615,13 @@ sub bz_locations {
$libpath =~ /(.*)/;
$libpath = $1;
my ($project, $localconfig, $datadir);
if ($ENV{'PROJECT'} && $ENV{'PROJECT'} =~ /^(\w+)$/) {
my ($localconfig, $datadir);
if ($project && $project =~ /^(\w+)$/) {
$project = $1;
$localconfig = "localconfig.$project";
$datadir = "data/$project";
} else {
$project = undef;
$localconfig = "localconfig";
$datadir = "data";
}
......@@ -648,6 +656,6 @@ sub bz_locations {
# This makes us not re-compute all the bz_locations data every time it's
# called.
BEGIN { memoize('bz_locations') };
BEGIN { memoize('_bz_locations') };
1;
......@@ -92,6 +92,10 @@ sub new {
# into bugs_fulltext).
$self->do('SET SESSION group_concat_max_len = 128000000');
# MySQL 5.5.2 and older have this variable set to true, which causes
# trouble, see bug 870369.
$self->do('SET SESSION sql_auto_is_null = 0');
return $self;
}
......
......@@ -213,7 +213,7 @@ sub sql_to_days {
sub sql_date_format {
my ($self, $date, $format) = @_;
$format = "%Y.%m.%d %H:%M:%s" if !$format;
$format = "%Y.%m.%d %H:%M:%S" if !$format;
$format =~ s/\%i/\%M/g;
return "STRFTIME(" . $self->quote($format) . ", $date)";
}
......
......@@ -92,8 +92,10 @@ sub _throw_error {
message => \$message });
if (Bugzilla->error_mode == ERROR_MODE_WEBPAGE) {
print Bugzilla->cgi->header();
my $cgi = Bugzilla->cgi;
$cgi->close_standby_message('text/html', 'inline');
print $message;
print $cgi->multipart_final() if $cgi->{_multipart_in_progress};
}
elsif (Bugzilla->error_mode == ERROR_MODE_TEST) {
die Dumper($vars);
......
......@@ -14,6 +14,7 @@ package Bugzilla::Install::Requirements;
# MUST NOT "use."
use strict;
use version;
use Bugzilla::Constants;
use Bugzilla::Install::Util qw(vers_cmp install_string bin_loc
......@@ -199,7 +200,9 @@ sub OPTIONAL_MODULES {
package => 'Chart',
module => 'Chart::Lines',
# Versions below 2.1 cannot be detected accurately.
version => '2.1',
# There is no 2.1.0 release (it was 2.1), but .0 is required to fix
# https://rt.cpan.org/Public/Bug/Display.html?id=28218.
version => '2.1.0',
feature => [qw(new_charts old_charts)],
},
{
......@@ -665,8 +668,8 @@ sub check_graphviz {
return $return;
}
# This was originally clipped from the libnet Makefile.PL, adapted here to
# use the below vers_cmp routine for accurate version checking.
# This was originally clipped from the libnet Makefile.PL, adapted here for
# accurate version checking.
sub have_vers {
my ($params, $output) = @_;
my $module = $params->{module};
......@@ -691,21 +694,17 @@ sub have_vers {
if ($@) {
no strict 'refs';
$vnum = ${"${module}::VERSION"};
}
$vnum ||= -1;
# CGI's versioning scheme went 2.75, 2.751, 2.752, 2.753, 2.76
# That breaks the standard version tests, so we need to manually correct
# the version
if ($module eq 'CGI' && $vnum =~ /(2\.7\d)(\d+)/) {
$vnum = $1 . "." . $2;
}
# CPAN did a similar thing, where it has versions like 1.9304.
if ($module eq 'CPAN' and $vnum =~ /^(\d\.\d{2})\d{2}$/) {
$vnum = $1;
# If we come here, then the version is not a valid one.
# We try to sanitize it.
if ($vnum =~ /^((\d+)(\.\d+)*)/) {
$vnum = $1;
}
}
$vnum ||= -1;
my $vok = (vers_cmp($vnum,$wanted) > -1);
# Must do a string comparison as $vnum may be of the form 5.10.1.
my $vok = ($vnum ne '-1' && version->new($vnum) >= version->new($wanted)) ? 1 : 0;
my $blacklisted;
if ($vok && $params->{blacklist}) {
$blacklisted = grep($vnum =~ /$_/, @{$params->{blacklist}});
......
......@@ -97,10 +97,12 @@ sub run_create_validators {
sub update {
my $self = shift;
my $dbh = Bugzilla->dbh;
$dbh->bz_start_transaction();
my $changes = $self->SUPER::update(@_);
if (exists $changes->{value}) {
my $dbh = Bugzilla->dbh;
# The milestone value is stored in the bugs table instead of its ID.
$dbh->do('UPDATE bugs SET target_milestone = ?
WHERE target_milestone = ? AND product_id = ?',
......@@ -111,6 +113,8 @@ sub update {
WHERE id = ? AND defaultmilestone = ?',
undef, ($self->name, $self->product_id, $changes->{value}->[0]));
}
$dbh->bz_commit_transaction();
return $changes;
}
......@@ -118,6 +122,8 @@ sub remove_from_db {
my $self = shift;
my $dbh = Bugzilla->dbh;
$dbh->bz_start_transaction();
# The default milestone cannot be deleted.
if ($self->name eq $self->product->default_milestone) {
ThrowUserError('milestone_is_default', { milestone => $self });
......@@ -146,8 +152,9 @@ sub remove_from_db {
Bugzilla->user->id, $timestamp);
}
}
$self->SUPER::remove_from_db();
$dbh->bz_commit_transaction();
}
################################
......
......@@ -1951,11 +1951,18 @@ sub _quote_unless_numeric {
my $numeric_field = $self->_chart_fields->{$field}->is_numeric;
my $numeric_value = ($value =~ NUMBER_REGEX) ? 1 : 0;
my $is_numeric = $numeric_operator && $numeric_field && $numeric_value;
# These operators are really numeric operators with numeric fields.
$numeric_operator = grep { $_ eq $operator } keys %{ SIMPLE_OPERATORS() };
if ($is_numeric) {
my $quoted = $value;
trick_taint($quoted);
return $quoted;
}
elsif ($numeric_field && !$numeric_value && $numeric_operator) {
ThrowUserError('number_not_numeric', { field => $field, num => $value });
}
return Bugzilla->dbh->quote($value);
}
......
......@@ -171,6 +171,10 @@ sub issue_hash_token {
my @args = ($time, $user_id, @$data);
my $token = join('*', @args);
# Wide characters cause Digest::SHA to die.
if (Bugzilla->params->{'utf8'}) {
utf8::encode($token) if utf8::is_utf8($token);
}
$token = hmac_sha256_base64($token, Bugzilla->localconfig->{'site_wide_secret'});
$token =~ s/\+/-/g;
$token =~ s/\//_/g;
......
......@@ -103,6 +103,7 @@ use constant OS_MAP => (
qr/\(.*Android.*\)/ => ["Android"],
# Windows
qr/\(.*Windows XP.*\)/ => ["Windows XP"],
qr/\(.*Windows NT 6\.3.*\)/ => ["Windows 8.1"],
qr/\(.*Windows NT 6\.2.*\)/ => ["Windows 8"],
qr/\(.*Windows NT 6\.1.*\)/ => ["Windows 7"],
qr/\(.*Windows NT 6\.0.*\)/ => ["Windows Vista"],
......
......@@ -494,8 +494,9 @@ sub join_activity_entries {
return $current_change . $new_change;
}
# All other fields get a space
if (substr($new_change, 0, 1) eq ' ') {
# All other fields get a space unless the first character of the second
# string is a comma or space
if (substr($new_change, 0, 1) eq ',' || substr($new_change, 0, 1) eq ' ') {
return $current_change . $new_change;
} else {
return $current_change . ' ' . $new_change;
......
......@@ -117,14 +117,18 @@ sub bug_count {
sub update {
my $self = shift;
my $dbh = Bugzilla->dbh;
$dbh->bz_start_transaction();
my ($changes, $old_self) = $self->SUPER::update(@_);
if (exists $changes->{value}) {
my $dbh = Bugzilla->dbh;
$dbh->do('UPDATE bugs SET version = ?
WHERE version = ? AND product_id = ?',
undef, ($self->name, $old_self->name, $self->product_id));
}
$dbh->bz_commit_transaction();
return $changes;
}
......
......@@ -2230,7 +2230,7 @@ narrowed down to specific products.
=item C<summary> (string) B<Required> - A string of keywords defining
the type of bug you are trying to report.
=item C<products> (array) - One or more product names to narrow the
=item C<product> (array) - One or more product names to narrow the
duplicate search to. If omitted, all bugs are searched.
=back
......
......@@ -284,23 +284,6 @@ sub GetGroups {
return [values %legal_groups];
}
sub _close_standby_message {
my ($contenttype, $disposition, $serverpush) = @_;
my $cgi = Bugzilla->cgi;
# Close the "please wait" page, then open the buglist page
if ($serverpush) {
print $cgi->multipart_end();
print $cgi->multipart_start(-type => $contenttype,
-content_disposition => $disposition);
}
else {
print $cgi->header(-type => $contenttype,
-content_disposition => $disposition);
}
}
################################################################################
# Command Execution
################################################################################
......@@ -945,7 +928,6 @@ if ($one_product && $user->can_enter_product($one_product)) {
# The following variables are used when the user is making changes to multiple bugs.
if ($dotweak && scalar @bugs) {
if (!$vars->{'caneditbugs'}) {
_close_standby_message('text/html', 'inline', $serverpush);
ThrowUserError('auth_failure', {group => 'editbugs',
action => 'modify',
object => 'multiple_bugs'});
......@@ -1055,7 +1037,7 @@ if ($format->{'extension'} eq "csv") {
# Suggest a name for the bug list if the user wants to save it as a file.
$disposition .= "; filename=\"$filename\"";
_close_standby_message($contenttype, $disposition, $serverpush);
$cgi->close_standby_message($contenttype, $disposition);
################################################################################
# Content Generation
......
......@@ -17,10 +17,9 @@ use Bugzilla::BugMail;
my $dbh = Bugzilla->dbh;
my $list = $dbh->selectcol_arrayref(
'SELECT bug_id FROM bugs
WHERE lastdiffed IS NULL
OR lastdiffed < delta_ts
AND delta_ts < '
'SELECT bug_id FROM bugs
WHERE (lastdiffed IS NULL OR lastdiffed < delta_ts)
AND delta_ts < '
. $dbh->sql_date_math('NOW()', '-', 30, 'MINUTE') .
' ORDER BY bug_id');
......
<!ENTITY bz-ver "4.4.1">
<!ENTITY bz-date "2013-10-16">
<!ENTITY current-year "2013">
<!ENTITY bz-ver "4.4.2">
<!ENTITY bz-date "2014-01-27">
<!ENTITY current-year "2014">
<!ENTITY min-perl-ver "5.8.1">
<!ENTITY landfillbase "http://landfill.bugzilla.org/bugzilla-4.4-branch/">
......@@ -12,7 +12,7 @@
<!ENTITY min-date-format-ver "2.23">
<!ENTITY min-datetime-ver "0.28">
<!ENTITY min-datetime-timezone-ver "0.71">
<!ENTITY min-dbi-ver "1.614">
<!ENTITY min-dbi-ver "1.54">
<!ENTITY min-template-ver "2.22">
<!ENTITY min-email-send-ver "2.04">
<!ENTITY min-email-mime-ver "1.904">
......@@ -20,7 +20,7 @@
<!ENTITY min-list-moreutils-ver "0.32">
<!ENTITY min-math-random-isaac-ver "1.0.1">
<!ENTITY min-gd-ver "1.20">
<!ENTITY min-chart-lines-ver "2.1">
<!ENTITY min-chart-lines-ver "2.1.0">
<!ENTITY min-template-plugin-gd-image-ver "any">
<!ENTITY min-gd-text-ver "any">
<!ENTITY min-gd-graph-ver "any">
......@@ -37,7 +37,7 @@
<!ENTITY min-json-rpc-ver "any">
<!ENTITY min-json-xs-ver "2.0">
<!ENTITY min-test-taint-ver "any">
<!ENTITY min-html-parser-ver "3.67">
<!ENTITY min-html-parser-ver "3.40">
<!ENTITY min-html-scrubber-ver "any">
<!ENTITY min-encode-ver "2.21">
<!ENTITY min-encode-detect-ver "any">
......@@ -51,11 +51,11 @@
<!ENTITY min-io-scalar-ver "any">
<!-- Database Versions -->
<!ENTITY min-dbd-sqlite-ver "1.29">
<!ENTITY min-sqlite-ver "3.6.22">
<!ENTITY min-dbd-pg-ver "2.7.0">
<!ENTITY min-pg-ver "8.03.0000">
<!ENTITY min-dbd-oracle-ver "1.19">
<!ENTITY min-oracle-ver "10.02.0">
<!ENTITY min-dbd-mysql-ver "4.001">
<!ENTITY min-mysql-ver "5.0.15">
<!ENTITY min-dbd-sqlite-ver "1.29">
<!ENTITY min-sqlite-ver "3.6.22">
<!ENTITY min-dbd-oracle-ver "1.19">
<!ENTITY min-oracle-ver "10.02.0">
<!ENTITY bz-ver "4.4.1">
<!ENTITY bz-date "2013-10-16">
<!ENTITY current-year "2013">
<!ENTITY bz-ver "4.4.2">
<!ENTITY bz-date "2014-01-27">
<!ENTITY current-year "2014">
<!ENTITY min-perl-ver "5.8.1">
<!ENTITY landfillbase "http://landfill.bugzilla.org/bugzilla-4.4-branch/">
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 1. About This Guide</title><link rel="stylesheet" type="text/css" href="../../style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><meta name="keywords" content="Bugzilla, Guide, installation, FAQ, administration, integration, MySQL, Mozilla, webtools"><link rel="home" href="index.html" title="The Bugzilla Guide - 4.4.1 Release"><link rel="up" href="index.html" title="The Bugzilla Guide - 4.4.1 Release"><link rel="prev" href="index.html" title="The Bugzilla Guide - 4.4.1 Release"><link rel="next" href="copyright.html" title="1.1. Copyright Information"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. About This Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="copyright.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="about"></a>Chapter 1. About This Guide</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="copyright.html">1.1. Copyright Information</a></span></dt><dt><span class="section"><a href="disclaimer.html">1.2. Disclaimer</a></span></dt><dt><span class="section"><a href="newversions.html">1.3. New Versions</a></span></dt><dt><span class="section"><a href="credits.html">1.4. Credits</a></span></dt><dt><span class="section"><a href="conventions.html">1.5. Document Conventions</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="copyright.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The Bugzilla Guide - 4.4.1
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 1. About This Guide</title><link rel="stylesheet" href="../../style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><meta name="keywords" content="Bugzilla, Guide, installation, FAQ, administration, integration, MySQL, Mozilla, webtools"><link rel="home" href="index.html" title="The Bugzilla Guide - 4.4.2 Release"><link rel="up" href="index.html" title="The Bugzilla Guide - 4.4.2 Release"><link rel="prev" href="index.html" title="The Bugzilla Guide - 4.4.2 Release"><link rel="next" href="copyright.html" title="1.1. Copyright Information"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. About This Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="copyright.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 1. About This Guide"><div class="titlepage"><div><div><h2 class="title"><a name="about"></a>Chapter 1. About This Guide</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="copyright.html">1.1. Copyright Information</a></span></dt><dt><span class="section"><a href="disclaimer.html">1.2. Disclaimer</a></span></dt><dt><span class="section"><a href="newversions.html">1.3. New Versions</a></span></dt><dt><span class="section"><a href="credits.html">1.4. Credits</a></span></dt><dt><span class="section"><a href="conventions.html">1.5. Document Conventions</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="copyright.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The Bugzilla Guide - 4.4.2
Release </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 1.1. Copyright Information</td></tr></table></div></body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 3. Administering Bugzilla</title><link rel="stylesheet" type="text/css" href="../../style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><meta name="keywords" content="Bugzilla, Guide, installation, FAQ, administration, integration, MySQL, Mozilla, webtools"><link rel="home" href="index.html" title="The Bugzilla Guide - 4.4.1 Release"><link rel="up" href="index.html" title="The Bugzilla Guide - 4.4.1 Release"><link rel="prev" href="upgrade.html" title="2.7. Upgrading to New Releases"><link rel="next" href="parameters.html" title="3.1. Bugzilla Configuration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Administering Bugzilla</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="upgrade.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="parameters.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="administration"></a>Chapter 3. Administering Bugzilla</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="parameters.html">3.1. Bugzilla Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="parameters.html#param-requiredsettings">3.1.1. Required Settings</a></span></dt><dt><span class="section"><a href="parameters.html#param-admin-policies">3.1.2. Administrative Policies</a></span></dt><dt><span class="section"><a href="parameters.html#param-user-authentication">3.1.3. User Authentication</a></span></dt><dt><span class="section"><a href="parameters.html#param-attachments">3.1.4. Attachments</a></span></dt><dt><span class="section"><a href="parameters.html#param-bug-change-policies">3.1.5. Bug Change Policies</a></span></dt><dt><span class="section"><a href="parameters.html#param-bugfields">3.1.6. Bug Fields</a></span></dt><dt><span class="section"><a href="parameters.html#param-bugmoving">3.1.7. Bug Moving</a></span></dt><dt><span class="section"><a href="parameters.html#param-dependency-graphs">3.1.8. Dependency Graphs</a></span></dt><dt><span class="section"><a href="parameters.html#param-group-security">3.1.9. Group Security</a></span></dt><dt><span class="section"><a href="parameters.html#bzldap">3.1.10. LDAP Authentication</a></span></dt><dt><span class="section"><a href="parameters.html#bzradius">3.1.11. RADIUS Authentication</a></span></dt><dt><span class="section"><a href="parameters.html#param-email">3.1.12. Email</a></span></dt><dt><span class="section"><a href="parameters.html#param-patchviewer">3.1.13. Patch Viewer</a></span></dt><dt><span class="section"><a href="parameters.html#param-querydefaults">3.1.14. Query Defaults</a></span></dt><dt><span class="section"><a href="parameters.html#param-shadowdatabase">3.1.15. Shadow Database</a></span></dt><dt><span class="section"><a href="parameters.html#admin-usermatching">3.1.16. User Matching</a></span></dt></dl></dd><dt><span class="section"><a href="useradmin.html">3.2. User Administration</a></span></dt><dd><dl><dt><span class="section"><a href="useradmin.html#defaultuser">3.2.1. Creating the Default User</a></span></dt><dt><span class="section"><a href="useradmin.html#manageusers">3.2.2. Managing Other Users</a></span></dt></dl></dd><dt><span class="section"><a href="classifications.html">3.3. Classifications</a></span></dt><dt><span class="section"><a href="products.html">3.4. Products</a></span></dt><dd><dl><dt><span class="section"><a href="products.html#create-product">3.4.1. Creating New Products</a></span></dt><dt><span class="section"><a href="products.html#edit-products">3.4.2. Editing Products</a></span></dt><dt><span class="section"><a href="products.html#comps-vers-miles-products">3.4.3. Adding or Editing Components, Versions and Target Milestones</a></span></dt><dt><span class="section"><a href="products.html#product-group-controls">3.4.4. Assigning Group Controls to Products</a></span></dt></dl></dd><dt><span class="section"><a href="components.html">3.5. Components</a></span></dt><dt><span class="section"><a href="versions.html">3.6. Versions</a></span></dt><dt><span class="section"><a href="milestones.html">3.7. Milestones</a></span></dt><dt><span class="section"><a href="flags-overview.html">3.8. Flags</a></span></dt><dd><dl><dt><span class="section"><a href="flags-overview.html#flags-simpleexample">3.8.1. A Simple Example</a></span></dt><dt><span class="section"><a href="flags-overview.html#flags-about">3.8.2. About Flags</a></span></dt><dt><span class="section"><a href="flags-overview.html#flag-askto">3.8.3. Using flag requests</a></span></dt><dt><span class="section"><a href="flags-overview.html#flag-types">3.8.4. Two Types of Flags</a></span></dt><dt><span class="section"><a href="flags-overview.html#flags-admin">3.8.5. Administering Flags</a></span></dt></dl></dd><dt><span class="section"><a href="keywords.html">3.9. Keywords</a></span></dt><dt><span class="section"><a href="custom-fields.html">3.10. Custom Fields</a></span></dt><dd><dl><dt><span class="section"><a href="custom-fields.html#add-custom-fields">3.10.1. Adding Custom Fields</a></span></dt><dt><span class="section"><a href="custom-fields.html#edit-custom-fields">3.10.2. Editing Custom Fields</a></span></dt><dt><span class="section"><a href="custom-fields.html#delete-custom-fields">3.10.3. Deleting Custom Fields</a></span></dt></dl></dd><dt><span class="section"><a href="edit-values.html">3.11. Legal Values</a></span></dt><dd><dl><dt><span class="section"><a href="edit-values.html#edit-values-list">3.11.1. Viewing/Editing legal values</a></span></dt><dt><span class="section"><a href="edit-values.html#edit-values-delete">3.11.2. Deleting legal values</a></span></dt></dl></dd><dt><span class="section"><a href="bug_status_workflow.html">3.12. Bug Status Workflow</a></span></dt><dt><span class="section"><a href="voting.html">3.13. Voting</a></span></dt><dt><span class="section"><a href="quips.html">3.14. Quips</a></span></dt><dt><span class="section"><a href="groups.html">3.15. Groups and Group Security</a></span></dt><dd><dl><dt><span class="section"><a href="groups.html#create-groups">3.15.1. Creating Groups</a></span></dt><dt><span class="section"><a href="groups.html#edit-groups">3.15.2. Editing Groups and Assigning Group Permissions</a></span></dt><dt><span class="section"><a href="groups.html#users-and-groups">3.15.3. Assigning Users to Groups</a></span></dt><dt><span class="section"><a href="groups.html#idm140158354855248">3.15.4. Assigning Group Controls to Products</a></span></dt></dl></dd><dt><span class="section"><a href="sanitycheck.html">3.16. Checking and Maintaining Database Integrity</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="parameters.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.7. Upgrading to New Releases </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 3.1. Bugzilla Configuration</td></tr></table></div></body></html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 3. Administering Bugzilla</title><link rel="stylesheet" href="../../style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><meta name="keywords" content="Bugzilla, Guide, installation, FAQ, administration, integration, MySQL, Mozilla, webtools"><link rel="home" href="index.html" title="The Bugzilla Guide - 4.4.2 Release"><link rel="up" href="index.html" title="The Bugzilla Guide - 4.4.2 Release"><link rel="prev" href="upgrade.html" title="2.7. Upgrading to New Releases"><link rel="next" href="parameters.html" title="3.1. Bugzilla Configuration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Administering Bugzilla</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="upgrade.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="parameters.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 3. Administering Bugzilla"><div class="titlepage"><div><div><h2 class="title"><a name="administration"></a>Chapter 3. Administering Bugzilla</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="parameters.html">3.1. Bugzilla Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="parameters.html#param-requiredsettings">3.1.1. Required Settings</a></span></dt><dt><span class="section"><a href="parameters.html#param-admin-policies">3.1.2. Administrative Policies</a></span></dt><dt><span class="section"><a href="parameters.html#param-user-authentication">3.1.3. User Authentication</a></span></dt><dt><span class="section"><a href="parameters.html#param-attachments">3.1.4. Attachments</a></span></dt><dt><span class="section"><a href="parameters.html#param-bug-change-policies">3.1.5. Bug Change Policies</a></span></dt><dt><span class="section"><a href="parameters.html#param-bugfields">3.1.6. Bug Fields</a></span></dt><dt><span class="section"><a href="parameters.html#param-bugmoving">3.1.7. Bug Moving</a></span></dt><dt><span class="section"><a href="parameters.html#param-dependency-graphs">3.1.8. Dependency Graphs</a></span></dt><dt><span class="section"><a href="parameters.html#param-group-security">3.1.9. Group Security</a></span></dt><dt><span class="section"><a href="parameters.html#bzldap">3.1.10. LDAP Authentication</a></span></dt><dt><span class="section"><a href="parameters.html#bzradius">3.1.11. RADIUS Authentication</a></span></dt><dt><span class="section"><a href="parameters.html#param-email">3.1.12. Email</a></span></dt><dt><span class="section"><a href="parameters.html#param-patchviewer">3.1.13. Patch Viewer</a></span></dt><dt><span class="section"><a href="parameters.html#param-querydefaults">3.1.14. Query Defaults</a></span></dt><dt><span class="section"><a href="parameters.html#param-shadowdatabase">3.1.15. Shadow Database</a></span></dt><dt><span class="section"><a href="parameters.html#admin-usermatching">3.1.16. User Matching</a></span></dt></dl></dd><dt><span class="section"><a href="useradmin.html">3.2. User Administration</a></span></dt><dd><dl><dt><span class="section"><a href="useradmin.html#defaultuser">3.2.1. Creating the Default User</a></span></dt><dt><span class="section"><a href="useradmin.html#manageusers">3.2.2. Managing Other Users</a></span></dt></dl></dd><dt><span class="section"><a href="classifications.html">3.3. Classifications</a></span></dt><dt><span class="section"><a href="products.html">3.4. Products</a></span></dt><dd><dl><dt><span class="section"><a href="products.html#create-product">3.4.1. Creating New Products</a></span></dt><dt><span class="section"><a href="products.html#edit-products">3.4.2. Editing Products</a></span></dt><dt><span class="section"><a href="products.html#comps-vers-miles-products">3.4.3. Adding or Editing Components, Versions and Target Milestones</a></span></dt><dt><span class="section"><a href="products.html#product-group-controls">3.4.4. Assigning Group Controls to Products</a></span></dt></dl></dd><dt><span class="section"><a href="components.html">3.5. Components</a></span></dt><dt><span class="section"><a href="versions.html">3.6. Versions</a></span></dt><dt><span class="section"><a href="milestones.html">3.7. Milestones</a></span></dt><dt><span class="section"><a href="flags-overview.html">3.8. Flags</a></span></dt><dd><dl><dt><span class="section"><a href="flags-overview.html#flags-simpleexample">3.8.1. A Simple Example</a></span></dt><dt><span class="section"><a href="flags-overview.html#flags-about">3.8.2. About Flags</a></span></dt><dt><span class="section"><a href="flags-overview.html#flag-askto">3.8.3. Using flag requests</a></span></dt><dt><span class="section"><a href="flags-overview.html#flag-types">3.8.4. Two Types of Flags</a></span></dt><dt><span class="section"><a href="flags-overview.html#flags-admin">3.8.5. Administering Flags</a></span></dt></dl></dd><dt><span class="section"><a href="keywords.html">3.9. Keywords</a></span></dt><dt><span class="section"><a href="custom-fields.html">3.10. Custom Fields</a></span></dt><dd><dl><dt><span class="section"><a href="custom-fields.html#add-custom-fields">3.10.1. Adding Custom Fields</a></span></dt><dt><span class="section"><a href="custom-fields.html#edit-custom-fields">3.10.2. Editing Custom Fields</a></span></dt><dt><span class="section"><a href="custom-fields.html#delete-custom-fields">3.10.3. Deleting Custom Fields</a></span></dt></dl></dd><dt><span class="section"><a href="edit-values.html">3.11. Legal Values</a></span></dt><dd><dl><dt><span class="section"><a href="edit-values.html#edit-values-list">3.11.1. Viewing/Editing legal values</a></span></dt><dt><span class="section"><a href="edit-values.html#edit-values-delete">3.11.2. Deleting legal values</a></span></dt></dl></dd><dt><span class="section"><a href="bug_status_workflow.html">3.12. Bug Status Workflow</a></span></dt><dt><span class="section"><a href="voting.html">3.13. Voting</a></span></dt><dt><span class="section"><a href="quips.html">3.14. Quips</a></span></dt><dt><span class="section"><a href="groups.html">3.15. Groups and Group Security</a></span></dt><dd><dl><dt><span class="section"><a href="groups.html#create-groups">3.15.1. Creating Groups</a></span></dt><dt><span class="section"><a href="groups.html#edit-groups">3.15.2. Editing Groups and Assigning Group Permissions</a></span></dt><dt><span class="section"><a href="groups.html#users-and-groups">3.15.3. Assigning Users to Groups</a></span></dt><dt><span class="section"><a href="groups.html#idp10289664">3.15.4. Assigning Group Controls to Products</a></span></dt></dl></dd><dt><span class="section"><a href="sanitycheck.html">3.16. Checking and Maintaining Database Integrity</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href=