From 6c6efdde5b5e041deb75f65b5a18baae7665d660 Mon Sep 17 00:00:00 2001 From: Simon Green Date: Fri, 13 Jun 2014 10:42:35 +1000 Subject: Bug 1023633 - Add a webservice_before_call Hook r=dkl, a=glob --- Bugzilla/WebService/Server.pm | 4 ++++ extensions/Example/Extension.pm | 14 ++++++++++++++ 2 files changed, 18 insertions(+) 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'}; -- cgit v1.2.3-24-g4f1b