forms.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. from django import forms
  2. import re
  3. from sicurezza.views import getSecurityLevelAll
  4. from configurazione.views import *
  5. from .models import *
  6. class formFtp(forms.Form):
  7. def __init__(self,*args,**kwargs):
  8. forms.Form.__init__(self,*args,**kwargs)
  9. def update(self):
  10. self.fields['utente'] = forms.CharField(required=True)
  11. self.fields['dominio'] = forms.IntegerField(required=True)
  12. self.fields['dominio_domain'] = forms.CharField(required=True)
  13. self.fields['homedir'] = forms.CharField(required=False)
  14. self.fields['utente'] = forms.CharField(required=True)
  15. self.fields['utente_assegnato'] = forms.CharField(required=False)
  16. self.fields['password1'] = forms.CharField(required=True,widget=forms.PasswordInput)
  17. self.fields['password2'] = forms.CharField(required=True,widget=forms.PasswordInput)
  18. self.fields['clear'] = forms.CharField(required=True)
  19. self.fields['rigenerapassword'] = forms.BooleanField(required=False,initial=False)
  20. self.fields['inviaparametri'] = forms.BooleanField(required=False,initial=False)
  21. self.fields['password_change_enabled'] = forms.BooleanField(required=False,initial=True)
  22. self.fields['enabled'] = forms.BooleanField(required=False,initial=False)
  23. self.fields['tobedeleted'] = forms.BooleanField(required=False,initial=False)
  24. self.fields['ftpgroup'] = forms.ChoiceField(required=True,initial=0,choices=self.listFTPGroup())
  25. self.fields['ftpserver'] = forms.ChoiceField(required=True,initial=0,choices=self.listServer())
  26. self.fields['mail'] = forms.CharField(required=False)
  27. self.fields['mail_send'] = forms.BooleanField(required=False,initial=False)
  28. self.fields['master'] = forms.BooleanField(required=False,initial=False)
  29. self.fields['edit'] = forms.BooleanField(required=False,initial=False)
  30. def clean_password1(self):
  31. #bypass in caso di password non modificata
  32. #if self.has_changed():
  33. # return self.data['password1']
  34. # password uguali nei due campi
  35. data = self.data['password1']
  36. if data != self.data['password2']:
  37. raise forms.ValidationError("I due campi password devono essere uguali")
  38. # lunghezza password
  39. if len(data.strip()) < int(getConfigurazione('ftp_password_length')):
  40. raise forms.ValidationError("Password troppo corta!")
  41. # stessa password usata attualmente
  42. if data.strip() == self.fields['utente']:
  43. raise forms.ValidationError("Password gia' utilizzata")
  44. # presenza di spazi non validi
  45. if re.search('\s',data):
  46. raise forms.ValidationError("Sono presenti caratteri non validi. I caratteri accettati sono: a-z,A-Z,0-9 e \.\,\[\!\@\#\$\%\^\&\*\?\_\~\-\:\;\(\)\[\]\{\}")
  47. if re.search('\d',data):
  48. if re.search('[a-z]',data):
  49. if re.search('[A-Z]',data):
  50. if re.search('[\.\,\[\!\@\#\$\%\^\&\*\?\_\~\-\:\;\(\)\[\]\{\}]',data):
  51. return data
  52. raise forms.ValidationError("Non e' presente almeno un numero, una lettera maiuscola, una minuscola e un simbolo")
  53. def clean_password2(self):
  54. data2 = self.data['password2']
  55. data1 = self.data['password1']
  56. if data2 != data1: raise forms.ValidationError('Confronto Email non riuscito')
  57. return data2
  58. def clean__mail(self):
  59. data = self.cleaned_data['mail']
  60. if ('@',' ','!') in data: raise forms.ValidationError('Caratteri non validi')
  61. return data
  62. def listFTPGroup(self):
  63. listaftpgroup = FTPGroup.objects.filter(enabled=True)
  64. lista = []
  65. for i in listaftpgroup:
  66. lista.append((i.id,i.nomegruppo))
  67. return lista
  68. def listServer(self):
  69. listaserver = FTPServer.objects.filter(enabled=True)
  70. lista = []
  71. for i in listaserver:
  72. lista.append((i.id,i.nome))
  73. return lista