Commit 4b781a33 authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 452896: A user with no privs who reported a bug couldn't move it to another…

Bug 452896: A user with no privs who reported a bug couldn't move it to another product if the target milestone was set Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=mkanat
parent 79cd8e82
...@@ -1870,7 +1870,15 @@ sub set_product { ...@@ -1870,7 +1870,15 @@ sub set_product {
Bugzilla->error_mode(ERROR_MODE_DIE); Bugzilla->error_mode(ERROR_MODE_DIE);
my $component_ok = eval { $self->set_component($comp_name); 1; }; my $component_ok = eval { $self->set_component($comp_name); 1; };
my $version_ok = eval { $self->set_version($vers_name); 1; }; my $version_ok = eval { $self->set_version($vers_name); 1; };
my $milestone_ok = eval { $self->set_target_milestone($tm_name); 1; }; my $milestone_ok = 1;
# Reporters can move bugs between products but not set the TM.
if ($self->check_can_change_field('target_milestone', 0, 1)) {
$milestone_ok = eval { $self->set_target_milestone($tm_name); 1; };
}
else {
# Have to set this directly to bypass the validators.
$self->{target_milestone} = $product->default_milestone;
}
# If there were any errors thrown, make sure we don't mess up any # If there were any errors thrown, make sure we don't mess up any
# other part of Bugzilla that checks $@. # other part of Bugzilla that checks $@.
undef $@; undef $@;
...@@ -1918,6 +1926,7 @@ sub set_product { ...@@ -1918,6 +1926,7 @@ sub set_product {
if (%vars) { if (%vars) {
$vars{product} = $product; $vars{product} = $product;
$vars{bug} = $self;
my $template = Bugzilla->template; my $template = Bugzilla->template;
$template->process("bug/process/verify-new-product.html.tmpl", $template->process("bug/process/verify-new-product.html.tmpl",
\%vars) || ThrowTemplateError($template->error()); \%vars) || ThrowTemplateError($template->error());
...@@ -1929,7 +1938,13 @@ sub set_product { ...@@ -1929,7 +1938,13 @@ sub set_product {
# just die if any of these are invalid. # just die if any of these are invalid.
$self->set_component($comp_name); $self->set_component($comp_name);
$self->set_version($vers_name); $self->set_version($vers_name);
$self->set_target_milestone($tm_name); if ($self->check_can_change_field('target_milestone', 0, 1)) {
$self->set_target_milestone($tm_name);
}
else {
# Have to set this directly to bypass the validators.
$self->{target_milestone} = $product->default_milestone;
}
} }
if ($product_changed) { if ($product_changed) {
......
...@@ -49,10 +49,15 @@ ...@@ -49,10 +49,15 @@
<input type="hidden" name="confirm_product_change" value="1"> <input type="hidden" name="confirm_product_change" value="1">
[%# Verify the version, component, and target milestone fields. %] [%# Verify the version, component, and target milestone fields. %]
<h3>Verify Version, Component[% ", Target Milestone" IF Param("usetargetmilestone") %]</h3> <h3>Verify Version, Component
[%- ", Target Milestone"
IF Param("usetargetmilestone")
&& bug.check_can_change_field('target_milestone', 0, 1) %]</h3>
<p> <p>
[% IF Param("usetargetmilestone") %] [% IF Param("usetargetmilestone")
&& bug.check_can_change_field('target_milestone', 0, 1)
%]
You are moving the [% terms.bug %](s) to the product You are moving the [% terms.bug %](s) to the product
<b>[% product.name FILTER html %]</b>, <b>[% product.name FILTER html %]</b>,
and the version, component, and/or target milestone fields are no longer and the version, component, and/or target milestone fields are no longer
...@@ -93,7 +98,9 @@ ...@@ -93,7 +98,9 @@
default=default_component default=default_component
size=10 %] size=10 %]
</td> </td>
[% IF Param("usetargetmilestone") %] [% IF Param("usetargetmilestone")
&& bug.check_can_change_field('target_milestone', 0, 1)
%]
<td> <td>
<b>Target Milestone:</b><br> <b>Target Milestone:</b><br>
[% PROCESS "global/select-menu.html.tmpl" [% PROCESS "global/select-menu.html.tmpl"
......
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