You'll need to move your module into a submodule of sap auth, like sapauth.extension.
Christian On Tuesday, November 3, 2015, Graeme Perrow <graeme.per...@gmail.com> wrote: > > Here is setup.py: > > from reviewboard.extensions.packaging import setup > > setup( name='sapauth', > version='1.0', > description='SAP Authentication backend for sareviews', > author='Graeme Perrow', > packages=['sapauth'], > entry_points={ > 'reviewboard.extensions': [ > 'sapauth = sapauth:SAPExtension', > ], > } > ) > > > And sapauth/__init__.py (with much of the code removed): > > import sys,urllib2,xml.sax > import logging > from django.conf import settings > from django.contrib.auth.models import User > from djblets.db.query import get_object_or_none > > from reviewboard.accounts.backends import AuthBackend > from reviewboard.extensions.base import Extension > from reviewboard.extensions.hooks import AuthBackendHook > > class sapauth(AuthBackend): > name = 'SAP' > backend_id = 'SAP_Auth_1.0' > supports_registration = False > supports_change_name = False > supports_change_email = False > supports_change_password = False > > def authenticate(self, username, password): > ... > # > > def get_user( self, user_id ): > return get_object_or_none(User, pk=user_id) > # > > def get_or_create_user(self, username, handler=None): > ... > # > > class SAPExtension(Extension): > def initialize(self): > AuthBackendHook(self, sapauth) > # > > > > On Tuesday, 3 November 2015 16:29:55 UTC-5, Christian Hammond wrote: >> >> Hi, >> >> I'd have to see the source of the extension to really be able to tell you >> more, but it sounds like perhaps the extension or its registration (in >> setup.py) isn't using absolute module paths to refer to some module. >> >> Would you be able to show me how you're registering it in setup.py, and >> the class attributes for your extension? >> >> Thanks, >> >> Christian >> >> -- >> Christian Hammond - chri...@beanbaginc.com >> Review Board - https://www.reviewboard.org >> Beanbag, Inc. - https://www.beanbaginc.com >> >> On Tue, Nov 3, 2015 at 12:23 PM, Graeme Perrow <graeme...@gmail.com> >> wrote: >> >>> I am trying to create an authentication extension for reviewboard >>> (running 2.0.18). I've followed the authentication backend instructions >>> here >>> <https://www.reviewboard.org/docs/manual/2.0/extending/auth-backends/#authentication-classes> >>> and >>> the installation instructions here >>> <https://www.reviewboard.org/docs/manual/2.0/extending/extensions/distribution/#python-egg>. >>> But I'm obviously missing something. My extension shows up in the list of >>> available extensions, but attempting to enable it results in a "Loading..." >>> message that never goes away. >>> >>> If I look in the log file (specified in the Logging admin page), I see >>> this exception: >>> >>> relative imports require the 'package' argument >>> Traceback (most recent call last): >>> File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", >>> line 112, in get_response >>> response = wrapped_callback(request, *callback_args, >>> **callback_kwargs) >>> File >>> "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", line >>> 52, in _wrapped_view_func >>> response = view_func(request, *args, **kwargs) >>> File >>> "/usr/lib/python2.7/site-packages/django/views/decorators/vary.py", line >>> 19, in inner_func >>> response = func(*args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/resources.py", >>> line 497, in __call__ >>> request, method, view, api_format=api_format, *args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/resources.py", >>> line 568, in call_method_view >>> return view(request, *args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/resources.py", >>> line 765, in put >>> return self.update(request, *args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", >>> line 117, in _call >>> return view_func(*args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", >>> line 138, in _checklogin >>> return view_func(*args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", >>> line 117, in _call >>> return view_func(*args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", >>> line 164, in _checkpermissions >>> response = view_func(*args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", >>> line 117, in _call >>> return view_func(*args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", >>> line 117, in _call >>> return view_func(*args, **kwargs) >>> File "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", >>> line 287, in _validate >>> return view_func(*args, **new_kwargs) >>> File >>> "/usr/lib/python2.7/site-packages/djblets/extensions/resources.py", line >>> 211, in update >>> self._extension_manager.enable_extension(extension_id) >>> File "/usr/lib/python2.7/site-packages/djblets/extensions/manager.py", >>> line 310, in enable_extension >>> extension = self._init_extension(ext_class) >>> File "/usr/lib/python2.7/site-packages/djblets/extensions/manager.py", >>> line 608, in _init_extension >>> self._reset_templatetags_cache() >>> File "/usr/lib/python2.7/site-packages/djblets/extensions/manager.py", >>> line 667, in _reset_templatetags_cache >>> get_templatetags_modules() >>> File "/usr/lib/python2.7/site-packages/django/template/base.py", line >>> 1292, in get_templatetags_modules >>> import_module(templatetag_module) >>> File "/usr/lib/python2.7/site-packages/django/utils/importlib.py", >>> line 33, in import_module >>> raise TypeError("relative imports require the 'package' argument") >>> TypeError: relative imports require the 'package' argument >>> >>> My actual extension is not listed in the call stack. What am I missing? >>> >>> >>> -- >>> Supercharge your Review Board with Power Pack: >>> https://www.reviewboard.org/powerpack/ >>> Want us to host Review Board for you? Check out RBCommons: >>> https://rbcommons.com/ >>> Happy user? Let us know! https://www.reviewboard.org/users/ >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "reviewboard" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to reviewboard...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- -- Christian Hammond - christ...@beanbaginc.com Review Board - https://www.reviewboard.org Beanbag, Inc. - https://www.beanbaginc.com -- Supercharge your Review Board with Power Pack: https://www.reviewboard.org/powerpack/ Want us to host Review Board for you? Check out RBCommons: https://rbcommons.com/ Happy user? Let us know! https://www.reviewboard.org/users/ --- You received this message because you are subscribed to the Google Groups "reviewboard" group. To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.