AuthBackendHook¶
New in version 2.0.
reviewboard.extensions.hooks.AuthBackendHook
allows extensions to
register new authentication backends, which can be used to integrate with
databases or servers to handle authentication, user lookup, and profile
manipulation.
Extensions must provide a subclass of
reviewboard.accounts.backends.AuthBackend
, and pass it as a
parameter to AuthBackendHook
. Each class must provide
backend_id
and name
attributes, and must implement
authenticate()
and get_or_create_user()
methods.
Example¶
from reviewboard.accounts.backends import AuthBackend
from reviewboard.extensions.base import Extension
from reviewboard.extensions.hooks import AuthBackendHook
class SampleAuthBackend(AuthBackend):
backend_id = 'myvendor_sample_auth'
name = 'Sample Authentication'
def authenticate(self, username, password):
if username == 'superuser' and password == 's3cr3t':
return self.get_or_create_user(username, password=password)
return None
def get_or_create_user(self, username, request=None, password=None):
user, is_new = User.objects.get_or_create(username=username)
if is_new:
user.set_unusable_password()
user.save()
return user
class SampleExtension(Extension):
def initialize(self):
AuthBackendHook(self, SampleAuthBackend)