22 lines
914 B
Python
22 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")
|