diff options
-rw-r--r-- | Bugzilla/Flag.pm | 9 | ||||
-rw-r--r-- | template/en/default/global/user-error.html.tmpl | 8 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index de90170a3..b82165e80 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -414,6 +414,15 @@ sub _validate { bug_id => $bug_id, attach_id => $attach_id }); } + + # Throw an error if the user won't be allowed to set the flag. + if ($flag_type->grant_group + && !$requestee->in_group_id($flag_type->grant_group->id)) + { + ThrowUserError('flag_requestee_needs_privs', + {'requestee' => $requestee, + 'flagtype' => $flag_type}); + } } } diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index 4a5634d4a..76823cdbc 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -475,7 +475,13 @@ 'flags.html' => 'Using Flags'} %] You can't ask more than one person at a time for <em>[% type.name FILTER html %]</em>. - + + [% ELSIF error == "flag_requestee_needs_privs" %] + [% title = "Flag Requestee Needs Privileges" %] + [% requestee.identity FILTER html %] does not have permission to set the + <em>[% flagtype.name FILTER html %]</em> flag. Please select a user who is + a member of the <em>[% flagtype.grant_group.name FILTER html %]</em> group. + [% ELSIF error == "flag_requestee_unauthorized" %] [% title = "Flag Requestee Not Authorized" %] [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', |