23 lines
914 B
Python
23 lines
914 B
Python
|
from rest_framework.authentication import BasicAuthentication
|
||
|
from rest_framework.exceptions import AuthenticationFailed
|
||
|
from django.contrib.auth.models import User
|
||
|
from .models import ServiceBrokerUser
|
||
|
|
||
|
|
||
|
class ServiceBrokerAuthentication(BasicAuthentication):
|
||
|
def authenticate_credentials(self, userid, password, request=None):
|
||
|
try:
|
||
|
user = User.objects.get(username=userid)
|
||
|
if not user.check_password(password):
|
||
|
raise AuthenticationFailed("Invalid password")
|
||
|
|
||
|
# Ensure user has broker permissions
|
||
|
try:
|
||
|
broker_user = ServiceBrokerUser.objects.get(user=user)
|
||
|
except ServiceBrokerUser.DoesNotExist:
|
||
|
raise AuthenticationFailed("User is not authorized for broker access")
|
||
|
|
||
|
return (user, None)
|
||
|
except User.DoesNotExist:
|
||
|
raise AuthenticationFailed("Invalid username")
|