From: Simon Green Date: Fri, 13 Jun 2014 00:42:35 +0000 (+1000) Subject: Bug 1023633 - Add a webservice_before_call Hook X-Git-Tag: bugzilla-4.5.5~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c6efdde5b5e041deb75f65b5a18baae7665d660;p=thirdparty%2Fbugzilla.git Bug 1023633 - Add a webservice_before_call Hook r=dkl, a=glob --- diff --git a/Bugzilla/WebService/Server.pm b/Bugzilla/WebService/Server.pm index 5ffd965a52..89cb1a130a 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 5370b0f4c5..22a3103c2d 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'};