summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorDave Lawrence <dlawrence@mozilla.com>2013-08-27 05:21:15 +0200
committerDave Lawrence <dlawrence@mozilla.com>2013-08-27 05:21:15 +0200
commit95aadcd21c9a56ef7d3478a2504980ea44f1bd9c (patch)
treefa1fd2d82427d716290e4a8dbaeede9802645e5b /Bugzilla
parentbd6dd6fba79a30455ac7ddacc00ab45ad0050215 (diff)
downloadbugzilla-95aadcd21c9a56ef7d3478a2504980ea44f1bd9c.tar.gz
bugzilla-95aadcd21c9a56ef7d3478a2504980ea44f1bd9c.tar.xz
Bug 908338 - Create a new webservice called User.valid_login that will verify if a cookie or login token is valid for the current user
r=glob,a=sgreen
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/WebService/Server/REST/Resources/User.pm5
-rw-r--r--Bugzilla/WebService/User.pm55
2 files changed, 60 insertions, 0 deletions
diff --git a/Bugzilla/WebService/Server/REST/Resources/User.pm b/Bugzilla/WebService/Server/REST/Resources/User.pm
index 1f82f752d..e2a2ea260 100644
--- a/Bugzilla/WebService/Server/REST/Resources/User.pm
+++ b/Bugzilla/WebService/Server/REST/Resources/User.pm
@@ -19,6 +19,11 @@ BEGIN {
sub _rest_resources {
my $rest_resources = [
+ qr{^/valid_login$}, {
+ GET => {
+ method => 'valid_login'
+ }
+ },
qr{^/user$}, {
GET => {
method => 'get'
diff --git a/Bugzilla/WebService/User.pm b/Bugzilla/WebService/User.pm
index 08c812076..44938a97a 100644
--- a/Bugzilla/WebService/User.pm
+++ b/Bugzilla/WebService/User.pm
@@ -83,6 +83,17 @@ sub logout {
return undef;
}
+sub valid_login {
+ my ($self, $params) = @_;
+ defined $params->{login}
+ || ThrowCodeError('param_required', { param => 'login' });
+ Bugzilla->login();
+ if (Bugzilla->user->id && Bugzilla->user->login eq $params->{login}) {
+ return $self->type('boolean', 1);
+ }
+ return $self->type('boolean', 0);
+}
+
#################
# User Creation #
#################
@@ -486,6 +497,50 @@ Log out the user. Does nothing if there is no user logged in.
=back
+=head2 valid_login
+
+B<UNSTABLE>
+
+=over
+
+=item B<Description>
+
+This method will verify whether a client's cookies or current login
+token is still valid or have expired. A valid username must be provided
+as well that matches.
+
+=item B<Params>
+
+=over
+
+=item C<login>
+
+The login name that matches the provided cookies or token.
+
+=item C<token>
+
+(string) Persistent login token current being used for authentication (optional).
+Cookies passed by client will be used before the token if both provided.
+
+=back
+
+=item B<Returns>
+
+Returns true/false depending on if the current cookies or token are valid
+for the provided username.
+
+=item B<Errors> (none)
+
+=item B<History>
+
+=over
+
+=item Added in Bugzilla B<5.0>.
+
+=back
+
+=back
+
=head1 Account Creation and Modification
=head2 offer_account_by_email