summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Green <sgreen@redhat.com>2014-06-13 02:42:35 +0200
committerSimon Green <sgreen@redhat.com>2014-06-13 02:42:35 +0200
commit6c6efdde5b5e041deb75f65b5a18baae7665d660 (patch)
tree4a10374b0c02019d8518ecedacd251fbefb32374
parenteb13c383198a1c52a7858fdf3fee0248262bbaf0 (diff)
downloadbugzilla-6c6efdde5b5e041deb75f65b5a18baae7665d660.tar.gz
bugzilla-6c6efdde5b5e041deb75f65b5a18baae7665d660.tar.xz
Bug 1023633 - Add a webservice_before_call Hook
r=dkl, a=glob
-rw-r--r--Bugzilla/WebService/Server.pm4
-rw-r--r--extensions/Example/Extension.pm14
2 files changed, 18 insertions, 0 deletions
diff --git a/Bugzilla/WebService/Server.pm b/Bugzilla/WebService/Server.pm
index 5ffd965a5..89cb1a130 100644
--- a/Bugzilla/WebService/Server.pm
+++ b/Bugzilla/WebService/Server.pm
@@ -28,6 +28,10 @@ sub handle_login {
return if ($class->login_exempt($method)
and !defined Bugzilla->input_params->{Bugzilla_login});
Bugzilla->login();
+
+ Bugzilla::Hook::process(
+ 'webservice_before_call',
+ { 'method' => $method, full_method => $full_method });
}
sub datetime_format_inbound {
diff --git a/extensions/Example/Extension.pm b/extensions/Example/Extension.pm
index 5370b0f4c..22a3103c2 100644
--- a/extensions/Example/Extension.pm
+++ b/extensions/Example/Extension.pm
@@ -949,6 +949,20 @@ sub webservice_error_codes {
$error_map->{'example_my_error'} = 10001;
}
+sub webservice_before_call {
+ my ($self, $args) = @_;
+
+ # This code doesn't actually *do* anything, it's just here to show you
+ # how to use this hook.
+ my $method = $args->{method};
+ my $full_method = $args->{full_method};
+
+ # Uncomment this line to see a line in your webserver's error log whenever
+ # a webservice call is made
+ #warn "RPC call $full_method made by ",
+ # Bugzilla->user->login || 'an anonymous user', "\n";
+}
+
sub webservice_fix_credentials {
my ($self, $args) = @_;
my $rpc = $args->{'rpc'};