diff options
Diffstat (limited to 'flywheel/authenticators.py')
| -rw-r--r-- | flywheel/authenticators.py | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/flywheel/authenticators.py b/flywheel/authenticators.py deleted file mode 100644 index 8de182de..00000000 --- a/flywheel/authenticators.py +++ /dev/null @@ -1,44 +0,0 @@ -from django.contrib.auth import authenticate -import base64 - -class BaseAuthenticator(object): - """All authenticators should extend BaseAuthenticator.""" - - def __init__(self, resource): - """Initialise the authenticator with the Resource instance as state, - in case the authenticator needs to access any metadata on the Resource object.""" - self.resource = resource - - def authenticate(self, request): - """Authenticate the request and return the authentication context or None. - - The default permission checking on Resource will use the allowed_methods attribute - for permissions if the authentication context is not None, and use anon_allowed_methods otherwise. - - The authentication context is passed to the method calls eg Resource.get(request, auth) in order to - allow them to apply any more fine grained permission checking at the point the response is being generated. - - This function must be overridden to be implemented.""" - return None - - -class BasicAuthenticator(BaseAuthenticator): - """Use HTTP Basic authentication""" - def authenticate(self, request): - if 'HTTP_AUTHORIZATION' in request.META: - auth = request.META['HTTP_AUTHORIZATION'].split() - if len(auth) == 2 and auth[0].lower() == "basic": - uname, passwd = base64.b64decode(auth[1]).split(':') - user = authenticate(username=uname, password=passwd) - if user is not None and user.is_active: - return user - return None - - -class UserLoggedInAuthenticator(BaseAuthenticator): - """Use Djagno's built-in request session for authentication.""" - def authenticate(self, request): - if request.user and request.user.is_active: - return request.user - return None - |
