kaauh_ats/recruitment/backends.py

37 lines
1.3 KiB
Python

"""
Custom authentication backends for the recruitment system.
"""
from allauth.account.auth_backends import AuthenticationBackend
from django.shortcuts import redirect
from django.urls import reverse
class CustomAuthenticationBackend(AuthenticationBackend):
"""
Custom authentication backend that extends django-allauth's AuthenticationBackend
to handle user type-based redirection after successful login.
"""
def post_login(self, request, user, **kwargs):
"""
Called after successful authentication.
Sets the appropriate redirect URL based on user type.
"""
# Set redirect URL based on user type
if user.user_type == 'staff':
redirect_url = '/dashboard/'
elif user.user_type == 'agency':
redirect_url = reverse('agency_portal_dashboard')
elif user.user_type == 'candidate':
redirect_url = reverse('applicant_portal_dashboard')
else:
# Fallback to default redirect URL if user type is unknown
redirect_url = '/'
# Store the redirect URL in session for allauth to use
request.session['allauth_login_redirect_url'] = redirect_url
# Call the parent method to complete the login process
return super().post_login(request, user, **kwargs)