Commit d5f626b5 authored by Hugo Seabrook's avatar Hugo Seabrook Committed by Byron Jones

Bug 830330: Make flags honour bug_check_can_change_field

r=dkl, a=LpSolit
parent a42f528a
...@@ -4057,8 +4057,8 @@ sub check_can_change_field { ...@@ -4057,8 +4057,8 @@ sub check_can_change_field {
return 1; return 1;
} }
# Allow anyone to change comments. # Allow anyone to change comments, or set flags
if ($field =~ /^longdesc/) { if ($field =~ /^longdesc/ || $field eq 'flagtypes.name') {
return 1; return 1;
} }
......
...@@ -296,6 +296,12 @@ sub set_flag { ...@@ -296,6 +296,12 @@ sub set_flag {
ThrowCodeError('flag_unexpected_object', { 'caller' => ref $obj }); ThrowCodeError('flag_unexpected_object', { 'caller' => ref $obj });
} }
# Make sure the user can change flags
my $privs;
$bug->check_can_change_field('flagtypes.name', 0, 1, \$privs)
|| ThrowUserError('illegal_change',
{ field => 'flagtypes.name', privs => $privs });
# Update (or delete) an existing flag. # Update (or delete) an existing flag.
if ($params->{id}) { if ($params->{id}) {
my $flag = $class->check({ id => $params->{id} }); my $flag = $class->check({ id => $params->{id} });
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
# defined by the Mozilla Public License, v. 2.0. # defined by the Mozilla Public License, v. 2.0.
#%] #%]
[% IF user.id AND !read_only_flags %] [% IF user.id && !read_only_flags && bug.check_can_change_field('flagtypes.name', 0, 1) %]
[%# We list flags by looping twice over the flag types relevant for the bug. [%# We list flags by looping twice over the flag types relevant for the bug.
# In the first loop, we display existing flags and then, for active types, # In the first loop, we display existing flags and then, for active types,
......
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