import logging

from django.contrib.auth import login
from django.contrib.auth.backends import RemoteUserBackend

from postorius_ldap_membership_management.utils import populate_user

logger = logging.getLogger(__name__)

class LdapRemoteUserBackend(RemoteUserBackend):
	def authenticate(self, request, remote_user=None):
		logging.info('auth as %s', remote_user)
		user = populate_user(remote_user)
		if user is not None:
			login(request, user, backend='django_auth_ldap.backend.LDAPBackend')
			logging.debug('loaded data for %s', remote_user)
		return user