MozReview: Move rbbz/auth to mozreview extension (
Bug 1262548). r?smacleod
MozReview-Commit-ID: 6aLiOLrRKRI
rename from pylib/rbbz/rbbz/auth.py
rename to pylib/mozreview/mozreview/bugzilla/auth.py
--- a/pylib/mozreview/mozreview/extension.py
+++ b/pylib/mozreview/mozreview/extension.py
@@ -6,17 +6,18 @@ import os
from django.conf.urls import include, patterns, url
from reviewboard.diffviewer.opcode_generator import (
get_diff_opcode_generator_class,
set_diff_opcode_generator_class,
)
from reviewboard.extensions.base import Extension, JSExtension
-from reviewboard.extensions.hooks import (HeaderDropdownActionHook,
+from reviewboard.extensions.hooks import (AuthBackendHook,
+ HeaderDropdownActionHook,
HostingServiceHook,
ReviewRequestDropdownActionHook,
ReviewRequestFieldsHook,
TemplateHook,
URLHook)
from reviewboard.reviews.builtin_fields import (TestingDoneField,
BranchField,
DependsOnField,
@@ -30,16 +31,17 @@ from mozreview.autoland.resources import
autoland_enable_resource,
autoland_request_update_resource,
autoland_trigger_resource,
try_autoland_trigger_resource,
)
from mozreview.batchreview.resources import (
batch_review_resource,
)
+from mozreview.bugzilla.auth import BugzillaBackend
from mozreview.diffviewer.opcode_generator import (
NoFilterDiffOpcodeGenerator
)
from mozreview.extra_data import (
is_parent,
)
from mozreview.fields import (
BaseCommitField,
@@ -186,16 +188,18 @@ class MozReviewExtension(Extension):
middleware = [
CorsHeaderMiddleware,
MozReviewCacheDisableMiddleware,
MozReviewUserProfileMiddleware,
]
def initialize(self):
+ AuthBackendHook(self, BugzillaBackend)
+
self.original_opcode_generator = get_diff_opcode_generator_class()
set_diff_opcode_generator_class(NoFilterDiffOpcodeGenerator)
initialize_pulse_handlers(self)
URLHook(self,
patterns('', url(r'^mozreview/', include('mozreview.urls'))))
--- a/pylib/mozreview/mozreview/forms.py
+++ b/pylib/mozreview/mozreview/forms.py
@@ -1,21 +1,20 @@
+import os
+
from django import forms
from django.utils.translation import ugettext as _
from djblets.extensions.forms import SettingsForm
from djblets.siteconfig.forms import SiteSettingsForm
-import mozreview.extension
-
-
class MozReviewSettingsForm(SettingsForm):
config = forms.CharField(
required=False,
help_text=_('Configure this extension by editing ' +
- mozreview.extension.SETTINGS_PATH)
+ os.path.join('/', 'mozreview-settings.json'))
)
class BugzillaAuthSettingsForm(SiteSettingsForm):
auth_bz_xmlrpc_url = forms.CharField(
label="Bugzilla XMLRPC URL",
help_text="URL for your Bugzilla installation's XMLRPC interface",
required=True)
--- a/pylib/mozreview/mozreview/resources/bugzilla_login.py
+++ b/pylib/mozreview/mozreview/resources/bugzilla_login.py
@@ -73,17 +73,17 @@ def auth_api_key(request, username, api_
extra = {
'web_login_needed': True,
'login_url': login_url,
}
return WebAPIResponseError(request, LOGIN_FAILED,
extra_params=extra)
# Django housekeeping.
- user.backend = 'rbbz.auth.BugzillaBackend'
+ user.backend = 'mozreview.bugzilla.auth.BugzillaBackend'
return user
class BugzillaAPIKeyLoginResource(WebAPIResource):
"""Resource for authenticating web API requests from Bugzilla API keys.
Takes a Bugzilla username and API key and attempts to authenticate.
"""
--- a/pylib/mozreview/mozreview/views.py
+++ b/pylib/mozreview/mozreview/views.py
@@ -219,14 +219,14 @@ def get_bmo_auth_callback(request):
assert user.email == bmo_username
if not user.is_active:
logger.warning('Validated API key but user %s is inactive.' %
bmo_username)
return show_error_page(request)
set_bugzilla_api_key(user, bmo_api_key)
- user.backend = 'rbbz.auth.BugzillaBackend'
+ user.backend = 'mozreview.bugzilla.auth.BugzillaBackend'
logger.info('BMO Auth callback succeeded for user: %s' % bmo_username)
login(request, user)
response = HttpResponseRedirect(redirect)
response.delete_cookie('bmo_auth_secret')
return response
--- a/pylib/rbbz/rbbz/extension.py
+++ b/pylib/rbbz/rbbz/extension.py
@@ -4,17 +4,17 @@
import logging
from django.contrib.sites.models import Site
from djblets.siteconfig.models import SiteConfiguration
from reviewboard.extensions.base import Extension
-from reviewboard.extensions.hooks import AuthBackendHook, SignalHook
+from reviewboard.extensions.hooks import SignalHook
from reviewboard.reviews.signals import (
reply_publishing,
review_publishing,
)
from mozreview.bugzilla.client import Bugzilla
from mozreview.bugzilla.errors import (
bugzilla_to_publish_errors,
@@ -29,27 +29,23 @@ from mozreview.extra_data import (
REVIEW_FLAG_KEY
)
from mozreview.models import (
get_bugzilla_api_key,
)
from mozreview.rb_utils import (
get_obj_url,
)
-from rbbz.auth import BugzillaBackend
-
logger = logging.getLogger(__name__)
class BugzillaExtension(Extension):
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,
sandbox_errors=False)
SignalHook(self, reply_publishing, on_reply_publishing,
sandbox_errors=False)