| Server IP : 85.214.239.14 / Your IP : 216.73.216.27 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/task/3/cwd/srv/modoboa/env/lib/python3.5/site-packages/modoboa/lib/ |
Upload File : |
"""Custom form fields."""
from django import forms
from django.utils.translation import ugettext_lazy
from rest_framework import serializers
from . import validators
class DomainNameField(forms.fields.CharField):
"""A subclass of CharField that only accepts a valid domain name."""
default_error_messages = {
"invalid": ugettext_lazy("Enter a valid domain name")
}
default_validators = [validators.validate_hostname]
def clean(self, value):
value = self.to_python(value).strip()
return super(DomainNameField, self).clean(value)
class UTF8EmailField(forms.fields.EmailField):
"""A subclass of EmailField to support UTF8 addresses."""
default_validators = [validators.validate_utf8_email]
class UTF8AndEmptyUserEmailField(forms.fields.EmailField):
"""
A subclass of EmailField to support UTF8 addresses (with or without
local part).
"""
default_validators = [validators.validate_utf8_and_empty_user_email]
class DRFEmailFieldUTF8(serializers.CharField):
"""Custom DRF email field to support UTF8."""
default_error_messages = {
"invalid": ugettext_lazy("Enter a valid email address.")
}
def __init__(self, **kwargs):
super(DRFEmailFieldUTF8, self).__init__(**kwargs)
validator = validators.UTF8EmailValidator(
message=self.error_messages["invalid"])
self.validators.append(validator)
class DRFEmailFieldUTF8AndEmptyUser(serializers.CharField):
"""Custom DRF email field to support UTF8 and empty local part."""
default_error_messages = {
"invalid": ugettext_lazy("Enter a valid email address.")
}
def __init__(self, **kwargs):
super(DRFEmailFieldUTF8AndEmptyUser, self).__init__(**kwargs)
validator = validators.UTF8AndEmptyUserEmailValidator(
message=self.error_messages["invalid"])
self.validators.append(validator)