summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Flag.pm9
-rw-r--r--template/en/default/global/user-error.html.tmpl8
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',