"""passbook core authentication forms"""

from django import forms
from django.core.validators import validate_email

from passbook.lib.config import CONFIG


class LoginForm(forms.Form):
    """Allow users to login"""

    uid_field = forms.CharField()
    password = forms.CharField(widget=forms.PasswordInput())
    remember_me = forms.BooleanField(required=False)

    def clean_uid_field(self):
        """Validate uid_field after EmailValidator if 'email' is the only selected uid_fields"""
        if CONFIG.y('passbook.uid_fields') == ['email']:
            validate_email(self.cleaned_data.get('uid_field'))
        return self.cleaned_data.get('uid_field')