summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Hook.pm24
-rwxr-xr-xeditusers.cgi3
-rw-r--r--extensions/Example/Extension.pm14
3 files changed, 41 insertions, 0 deletions
diff --git a/Bugzilla/Hook.pm b/Bugzilla/Hook.pm
index 17023f8f5..0db7baf7d 100644
--- a/Bugzilla/Hook.pm
+++ b/Bugzilla/Hook.pm
@@ -1354,6 +1354,30 @@ name), you can get it from here.
=back
+=head2 admin_editusers_action
+
+This hook allows you to add additional actions to the admin Users page.
+
+Params:
+
+=over
+
+=item C<vars>
+
+You can add as many new key/value pairs as you want to this hashref.
+It will be passed to the template.
+
+=item C<action>
+
+A text which indicates the different behaviors that edit_users.cgi will have.
+With this hook you can change the behavior of an action or add new actions.
+
+=item C<user>
+
+This is a Bugzilla::User object of the user.
+
+=back
+
=head2 user_preferences
This hook allows you to add additional panels to the User Preferences page,
diff --git a/editusers.cgi b/editusers.cgi
index b4b86b880..e2675921b 100755
--- a/editusers.cgi
+++ b/editusers.cgi
@@ -50,6 +50,9 @@ my $token = $cgi->param('token');
$vars->{'editusers'} = $editusers;
mirrorListSelectionValues();
+Bugzilla::Hook::process('admin_editusers_action',
+ { vars => $vars, user => $user, action => $action });
+
###########################################################################
if ($action eq 'search') {
# Allow to restrict the search to any group the user is allowed to bless.
diff --git a/extensions/Example/Extension.pm b/extensions/Example/Extension.pm
index 4c2d51336..a2ab3b5fc 100644
--- a/extensions/Example/Extension.pm
+++ b/extensions/Example/Extension.pm
@@ -807,6 +807,20 @@ sub bug_check_can_change_field {
}
}
+sub admin_editusers_action {
+ my ($self, $args) = @_;
+ my ($vars, $action, $user) = @$args{qw(vars action user)};
+ my $template = Bugzilla->template;
+
+ if ($action eq 'my_action') {
+ # Allow to restrict the search to any group the user is allowed to bless.
+ $vars->{'restrictablegroups'} = $user->bless_groups();
+ $template->process('admin/users/search.html.tmpl', $vars)
+ || ThrowTemplateError($template->error());
+ exit;
+ }
+}
+
sub user_preferences {
my ($self, $args) = @_;
my $tab = $args->{current_tab};