37 lines
1.3 KiB
Python
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)
|