Jump to >


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.


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:

        return user

class SampleExtension(Extension):
    def initialize(self):
        AuthBackendHook(self, SampleAuthBackend)