forms.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from django import forms
  2. import re
  3. from sicurezza.views import getSecurityLevelAll
  4. from .models import *
  5. from domini.models import *
  6. from django import forms
  7. class formAlias(forms.Form):
  8. def __init__(self,*args,**kwargs):
  9. forms.Form.__init__(self,*args,**kwargs)
  10. def update(self):
  11. self.fields['mailfrom'] = forms.CharField(required=True)
  12. self.fields['domain'] = forms.IntegerField(required=True)
  13. self.fields['mailto'] = forms.CharField(required=False,max_length=128)
  14. self.fields['nota'] = forms.CharField(widget=forms.Textarea(attrs={'rows':4,'cols':60}),required=False,initial='')
  15. self.fields['enabled'] = forms.BooleanField(required=False)
  16. self.fields['locked'] = forms.BooleanField(required=False)
  17. self.fields['tobedeleted'] = forms.BooleanField(required=False)
  18. self.fields['utenteautorizzato'] = forms.CharField(required=False,max_length=128)
  19. def clean_mailto(self):
  20. #check correttezza email.
  21. mailto = self.data['mailto']
  22. print('data',mailto)
  23. # se 'mailto' è vuoto, si prende l'utente autorizzato.
  24. if not len(mailto): mailto = self.data['utenteautorizzato']
  25. print('data full',mailto)
  26. print("self.data['domain']",self.data['domain'])
  27. domain_domain=""
  28. try:
  29. domain = Domini.objects.get(pk=self.data['domain'])
  30. domain_domain = domain.nome
  31. except Domini.DoesNotExist:
  32. raise forms.ValidationError("Il dominio non e' valido")
  33. baseconfronto = "{}@{}".format(self.data['mailfrom'],domain.nome)
  34. print("base confronto: ",baseconfronto)
  35. if mailto == baseconfronto:
  36. raise forms.ValidationError("La destinazione non può essere uguale alla sorgente!")
  37. '''
  38. #cp = re.compile("[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}")
  39. cp = re.compile("[a-z0-9\.\+_-]+@[a-z0-9\._-]+\.[a-z]{2,6}")
  40. if cp.match(baseconfronto):
  41. print('confronto non valido')
  42. raise forms.ValidationError("Formato Email errato")
  43. else: print('formato mail valido')
  44. '''
  45. return mailto