Backout of Bug 1001462 - Bug.search causes error when using simple token auth and specifying 'token' instead of 'Bugzilla_token'
git-svn-id: svn://10.0.0.236/trunk@265399 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
9fd83c37bb
commit
52678c0270
@ -1 +1 @@
|
||||
9029
|
||||
9030
|
||||
@ -1 +1 @@
|
||||
d694e688d2b129e6091ee5045066f09f4578f14e
|
||||
52b113cc1a6a208744ec92ad1b2c91d463ff9202
|
||||
@ -115,7 +115,6 @@ our @ISA = qw(XMLRPC::Deserializer);
|
||||
|
||||
use Bugzilla::Error;
|
||||
use Bugzilla::WebService::Constants qw(XMLRPC_CONTENT_TYPE_WHITELIST);
|
||||
use Bugzilla::WebService::Util qw(fix_credentials);
|
||||
use Scalar::Util qw(tainted);
|
||||
|
||||
sub deserialize {
|
||||
@ -139,11 +138,6 @@ sub deserialize {
|
||||
my $params = $som->paramsin;
|
||||
# This allows positional parameters for Testopia.
|
||||
$params = {} if ref $params ne 'HASH';
|
||||
|
||||
# Update the params to allow for several convenience key/values
|
||||
# use for authentication
|
||||
fix_credentials($params);
|
||||
|
||||
Bugzilla->input_params($params);
|
||||
return $som;
|
||||
}
|
||||
|
||||
@ -54,10 +54,16 @@ sub login {
|
||||
|
||||
# Username and password params are required
|
||||
foreach my $param ("login", "password") {
|
||||
(!defined $params->{$param} && !defined $params->{'Bugzilla_' . $param})
|
||||
defined $params->{$param}
|
||||
|| ThrowCodeError('param_required', { param => $param });
|
||||
}
|
||||
|
||||
# Make sure the CGI user info class works if necessary.
|
||||
my $input_params = Bugzilla->input_params;
|
||||
$input_params->{'Bugzilla_login'} = $params->{login};
|
||||
$input_params->{'Bugzilla_password'} = $params->{password};
|
||||
$input_params->{'Bugzilla_restrictlogin'} = $params->{restrict_login};
|
||||
|
||||
my $user = Bugzilla->login();
|
||||
|
||||
my $result = { id => $self->type('int', $user->id) };
|
||||
|
||||
@ -261,17 +261,18 @@ sub params_to_objects {
|
||||
|
||||
sub fix_credentials {
|
||||
my ($params) = @_;
|
||||
|
||||
# Allow user to pass in login, password, restrict_login, and
|
||||
# token as short-cuts to the longer versions.
|
||||
$params->{'Bugzilla_login'} = delete $params->{'login'}
|
||||
if exists $params->{'login'};
|
||||
$params->{'Bugzilla_password'} = delete $params->{'password'}
|
||||
if exists $params->{'password'};
|
||||
$params->{'Bugzilla_restrictlogin'} = delete $params->{'restrict_login'}
|
||||
if exists $params->{'restrict_login'};
|
||||
$params->{'Bugzilla_token'} = delete $params->{'token'}
|
||||
if exists $params->{'token'};
|
||||
# Allow user to pass in login=foo&password=bar as a convenience
|
||||
# even if not calling GET /login. We also do not delete them as
|
||||
# GET /login requires "login" and "password".
|
||||
if (exists $params->{'login'} && exists $params->{'password'}) {
|
||||
$params->{'Bugzilla_login'} = $params->{'login'};
|
||||
$params->{'Bugzilla_password'} = $params->{'password'};
|
||||
}
|
||||
# Allow user to pass token=12345678 as a convenience which becomes
|
||||
# "Bugzilla_token" which is what the auth code looks for.
|
||||
if (exists $params->{'token'}) {
|
||||
$params->{'Bugzilla_token'} = $params->{'token'};
|
||||
}
|
||||
|
||||
# Allow extensions to modify the credential data before login
|
||||
Bugzilla::Hook::process('webservice_fix_credentials', { params => $params });
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user