from django import forms from config.views import getConfig from utente.models import Utente from amministratore.models import Amministratore class formUtente(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['codicefiscale'] = forms.CharField(required=True) self.fields['nome'] = forms.CharField(required=True) self.fields['datanascita'] = forms.DateField(required=False) #,input_formats=['%d/%m/%Y',]) self.fields['luogonascita'] = forms.CharField(required=False) self.fields['mail'] = forms.CharField(required=False) self.fields['CancellaUtente'] = forms.BooleanField(required=False) self.fields['pin'] = forms.CharField(required=True) self.fields['primologin'] = forms.BooleanField(required=False) self.fields['sede'] = forms.IntegerField(required=False) class formPinMail(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['mail'] = forms.CharField(required=False) self.fields['pin'] = forms.CharField(required=True) class formUpdatePasswordPrimoLogin(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['cfisc'] = forms.CharField(required=True) self.fields['uuid'] = forms.CharField(required=True) self.fields['pin0'] = forms.CharField(required=True) self.fields['pin1'] = forms.CharField(required=True) self.fields['pin2'] = forms.CharField(required=True) self.fields['lostpin'] = forms.CharField(required=False) def clean_pin1(self): print(dir(self)) # validazione password if self.data['pin1'] != self.data['pin2']: # password non corrispondente raise forms.ValidationError("Le due password devono essere uguali") if self.data['pin1'] == self.data['cfisc']: # nome uguale a login raise forms.ValidationError("La password non puo' essere uguale al login") if len(self.data['pin1']) < int(getConfig('PasswordMin')): # lunghezza minima della password raise forms.ValidationError("Password troppo corta") return self.data['pin1'] class formUpdatePasswordLogin(forms.Form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields['cfisc'] = forms.CharField(required=True) self.fields['uuid'] = forms.CharField(required=True) self.fields['pin1'] = forms.CharField(required=True) self.fields['pin2'] = forms.CharField(required=True) def clean_pin1(self): print(dir(self)) # validazione password if self.data['pin1'] != self.data['pin2']: # password non corrispondente raise forms.ValidationError("Le due password devono essere uguali") if self.data['pin1'] == self.data['cfisc']: # nome uguale a login raise forms.ValidationError("La password non puo' essere uguale al login") if len(self.data['pin1']) < int(getConfig('PasswordMin')): # lunghezza minima della password raise forms.ValidationError("Password troppo corta") return self.data['pin1'] def clean_uuid(self): a = None d = None login = self.data['cfisc'] # 1 tentativo su codice fiscale try: a = Utente.objects.get(codicefiscale=login.upper()) d = 'u' except Utente.DoesNotExist as dne: print('informazione non trovata tra i codici fiscali utente') try: a = Utente.objects.get(mail=login.lower()) d = 'u' except Utente.DoesNotExist as dne: print('informazione non trovata tra le email') try: a = Amministratore.objects.get(login=login.lower()) d = 'a' except Amministratore.DoesNotExist as dne: print('informazione non trovata tra i login amministratotore') if not a: raise forms.ValidationError("UUID Non Validato") else: if a.uuid == self.data['uuid']: return self.data['uuid'] raise forms.ValidationError("UUID non valido o scaduto")