from account import hooks
from django.contrib.auth.models import User


class BetterAccountHookSet(hooks.AccountDefaultHookSet):

    def get_user_credentials(self, form, identifier_field):
        username = form.cleaned_data[identifier_field]

        # Find an actual username so we can authenticate
        print username,
        if identifier_field == "email":
            username = self.get_username_by_email(username)
        print username,

        return {
            "username": username,
            "password": form.cleaned_data["password"],
        }

    def get_username_by_email(self, email):
        try:
            return User.objects.get(email=email).username
        except User.DoesNotExist:
            return None
