django-publicauth / publicauth / __init__.py

from django.contrib.auth.models import User

from publicauth.models import PublicID
from publicauth import settings
from publicauth import lang


class PublicBackend(object):
    """
    Add this Authentication Backend to 
    AUTHENTICATION_BACKENDS tuple in your settings.py
    """

    def get_user(self, user_id):
        try:
            return User.objects.get(pk=user_id)
        except User.DoesNotExist:
            return None

    def authenticate(self, identity=None, provider=None):
        """
        Authenticate user by public identity.
        """
        if identity:
            try:
                user = PublicID.objects.get(identity=identity, provider=provider).user
                return user
            except PublicID.DoesNotExist:
                return None
        else:
            return None
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.