from django.conf import settings
from django.contrib.sites.models import Site
from django_cas_ng.backends import CASBackend


class COFCASBackend(CASBackend):
    def clean_username(self, username):
        # Le CAS de l'ENS accepte les logins avec des espaces au début
        # et à la fin, ainsi qu’avec une casse variable. On normalise pour
        # éviter les doublons.
        return username.strip().lower()

    def configure_user(self, user):
        clipper = user.username
        user.profile.login_clipper = clipper
        user.profile.save()
        user.email = settings.CAS_EMAIL_FORMAT % clipper
        user.save()
        return user


def context_processor(request):
    """Append extra data to the context of the given request"""
    data = {"user": request.user, "site": Site.objects.get_current()}
    return data
