| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- from django.shortcuts import render
- from django.http import JsonResponse
- import random
- import re
- from .models import *
- # riporta la configurazione o solleva un'eccezione
- def getConfigurazione(id=None,regex=False,rule=None):
- try:
- risultato = Configurazione.objects.get(pk=id)
- except Configurazione.DoesNotExist as dne:
- print('Configurazione: valore errato \'{}\'.'.format(id))
- return None
- '''
- di default viene passato valore a value, pronto per essere restituito.
- nel caso si presente regex, andiamo a valutare nell'ordine,
- la regola passata, se presente, oppure la regola inserita nel db.
- '''
- value = risultato.valore
- if regex:
- if rule:
- value = re.findall(rule,risultato.valore)
- else:
- value = re.findall(risultato.regex,risultato.valore)
-
- print('Configurazione: valore corretto \'{}\'.'.format(value))
- return value
- def setConfigurazione(id=None,valore=None):
- try:
- configurazione = Configurazione.objects.get(pk=id)
- except Configurazione.DoesNotExist as dne:
- print('Configurazione, valore errato \'{}\'.'.format(id))
- configurazione = Configurazione()
- configurazione.id = id
- configurazione.valore = valore
- configurazione.save()
- print('Configurazione: valore aggiornato \'{}\': \'{}\''.format(id,valore))
- return configurazione.valore
- #genera password
- def getPassword():
- lunghezzapassword=int(getConfigurazione('mail_password_length'))
- print('lunghezza default password: ',lunghezzapassword)
- value ='abcdefghikjlmnopqrstuvwxyz'
- valueup=value.upper()
- number='0123456789'
- symbol='.,[!@#$%^&*?_~-:;()[]{}'
- #calcolo dei pesi (intendo dire, che ci sara' maggior spazio per le lettere, minore per i numeri, minimo per i simboli)
- vLo = int(lunghezzapassword * 0.40)
- vUp = int(lunghezzapassword * 0.40)
- nUm = int(lunghezzapassword * 0.20)
- sYm = lunghezzapassword -vLo -vUp -nUm
- print("pesi: ",vLo,vUp,nUm,sYm)
- # a questo punto estraggo tante liste (4) di voci random
- l=list()
- for i in range(0,vLo):
- l.append(random.choice(value))
- for i in range(0,vUp):
- l.append(random.choice(valueup))
- for i in range(0,nUm):
- l.append(random.choice(number))
- for i in range(0,sYm):
- l.append(random.choice(symbol))
- print("originale: ".join(l))
- random.shuffle(l)
- print("definitivo: ".join(l))
- return("".join(l))
- # restituisce una nuova password via Json
- def getJsonPassword(request):
- data = { 'newPassword': getPassword() }
- return JsonResponse(data)
|