MozReview: Remove rbbz/resources (BugzillaCookieLoginResource) as it doesn't appear to be used (Bug 1262548). r?smacleod draft
authorDavid Walsh <dwalsh@mozilla.com>
Tue, 26 Apr 2016 16:48:16 -0500
changeset 8482 e6536426265114d4877d70f92bd43920b3de0604
parent 8481 01bcf48e10a6c6fae71767ff0faaa14f1735d65a
child 8483 1566a5911f1b607eff5f66d0f1cef160990e7726
push id917
push userbmo:dwalsh@mozilla.com
push dateThu, 09 Jun 2016 17:49:07 +0000
reviewerssmacleod
bugs1262548
MozReview: Remove rbbz/resources (BugzillaCookieLoginResource) as it doesn't appear to be used (Bug 1262548). r?smacleod MozReview-Commit-ID: H2VgPW5geiy
pylib/rbbz/rbbz/extension.py
pylib/rbbz/rbbz/resources.py
--- a/pylib/rbbz/rbbz/extension.py
+++ b/pylib/rbbz/rbbz/extension.py
@@ -30,26 +30,22 @@ from mozreview.extra_data import (
 )
 from mozreview.models import (
     get_bugzilla_api_key,
 )
 from mozreview.rb_utils import (
     get_obj_url,
 )
 from rbbz.auth import BugzillaBackend
-from rbbz.resources import bugzilla_cookie_login_resource
 
 
 logger = logging.getLogger(__name__)
 
 
 class BugzillaExtension(Extension):
-    resources = [
-        bugzilla_cookie_login_resource,
-    ]
 
     def initialize(self):
         AuthBackendHook(self, BugzillaBackend)
 
         # Any abortable signal hooks that talk to Bugzilla should have
         # sandbox_errors=False, since we don't want to complete the action if
         # updating Bugzilla failed for any reason.
         SignalHook(self, review_publishing, on_review_publishing,
deleted file mode 100644
--- a/pylib/rbbz/rbbz/resources.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-from django.contrib.auth import login
-from djblets.webapi.decorators import (webapi_request_fields,
-                                       webapi_response_errors)
-from djblets.webapi.errors import (INVALID_FORM_DATA,
-                                   LOGIN_FAILED,
-                                   SERVICE_NOT_CONFIGURED)
-from reviewboard.accounts.backends import get_registered_auth_backend
-from reviewboard.webapi.decorators import webapi_check_local_site
-from reviewboard.webapi.resources import WebAPIResource
-
-
-class BugzillaCookieLoginResource(WebAPIResource):
-    """Resource for authenticating using a bugzilla cookie.
-
-    This resource allows authentication by providing a valid bugzilla
-    user id and an associated login cookie. If the Bugzilla authentication
-    backend is not enabled we will return an error and not attempt to
-    login.
-    """
-    name = 'bugzilla_cookie_login'
-    allowed_methods = ('GET', 'POST',)
-
-    @webapi_check_local_site
-    @webapi_response_errors(INVALID_FORM_DATA, LOGIN_FAILED,
-                            SERVICE_NOT_CONFIGURED)
-    @webapi_request_fields(
-        required={
-            'login_id': {
-                'type': str,
-                'description': 'The bugzilla login ID.',
-            },
-            'login_cookie': {
-                'type': str,
-                'description': 'The bugzilla login cookie value.',
-            },
-        }
-    )
-    def create(self, request, login_id, login_cookie, *args, **kwargs):
-        """Authenticate a user using a bugzilla cookie."""
-        # The bugzilla auth backend must be enabled to use this
-        # resource, so check if it is.
-        auth_backend_cls = get_registered_auth_backend('bugzilla')
-        if not auth_backend_cls:
-            return SERVICE_NOT_CONFIGURED
-
-        bugzilla_backend = auth_backend_cls()
-        user = bugzilla_backend.authenticate(login_id, login_cookie,
-                                             cookie=True)
-
-        if user is None:
-            return LOGIN_FAILED
-
-        user.backend = 'rbbz.auth.BugzillaBackend'
-
-        # Authentication succeeded, persist the returned user for
-        # the session.
-        login(request, user)
-
-        # It might make sense to return more data about the result of a
-        # successful login but for now we'll just return the email address
-        # of the user.
-        return 201, {
-            self.item_result_key: {
-                'email': user.email,
-            },
-        }
-
-    @webapi_request_fields(allow_unknown=True)
-    def get_list(self, request, *args, **kwargs):
-        """Handles HTTP GETs to the list resource.
-
-        We override this method to permit accessing the resource anonymously
-        even when Review Board is configured to prevent anonymous access.
-        This allows using the resource to authenticate with bugzilla without
-        already being logged in to the API.
-        """
-        return 200, {
-            'links': self.get_links(self.list_child_resources,
-                                    request=request, *args, **kwargs),
-        }
-
-
-bugzilla_cookie_login_resource = BugzillaCookieLoginResource()