| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- from django.shortcuts import render
- from django.http import HttpResponse,HttpResponseRedirect,FileResponse
- from django.urls import reverse
- from .forms import *
- from config.views import getConfig
- from comunicazione.views import ServizioMail
- from utente.models import *
- from django.contrib.auth import authenticate
- import django
- from att.views import *
- def start(request):
- '''
- da qui si comincia
- l'utente e' invitato a inserire il suo codice fiscale e la password/pin assegnata in fase di visita medica
- se i dati corrispondono, si forniscono i file e alcune info di servizio
- '''
- request.session.flush()
- request.session.set_expiry(3600)
- data = dict()
- data['HeaderTitle'] = getConfig('HeaderTitle')
- if request.method=="POST":
- result = LoginUser(request.POST)
- if result.is_valid():
- username = result.cleaned_data['cfisc']
- pin = result.cleaned_data['passs']
- #verifica corrispondenza utente
- u = None
- try:
- # verifica che esista un utente ordinario
- u = Utente.objects.get(codicefiscale=username.upper())
- except Utente.DoesNotExist as dne:
- print("non ci provare")
- u = None
- if u: #utente esiste
- if u.pin.strip()== pin:
- # password valida
- data = dict()
- data['u'] = u
- #data['settings'] = settings
- #data['static'] = static
- request.session['UserId'] = u.id
- print('utente validato:',u.nome)
- setLog(1,utente=u)
- #setNewLog(1,{'u':u.nome})
- ### comunicazioni ###
- if len(u.mail) > 0:
- comunicazione = None
- try:
- comunicazione = Comunicazione.objects.get(pk=2)
- except Comunicazione.DoesNotExist as dne:
- print('comunicazione non valida',dne)
- if comunicazione:
- sm = ServizioMail(debug=True)
- sm.set_mailfrom=comunicazione.mittente
- sm.add_to(u.mail)
- sm.set_soggetto(comunicazione.soggetto)
- sm.set_corpo(comunicazione.corpo)
- sm_data = dict()
- sm_data['utente'] = u
- sm.set_data(sm_data)
- sm.send()
- ### comunicazioni ###
- return HttpResponseRedirect(reverse("utente:download"))
- else: # l'utente ordinario non esiste
- print('verifica amministratore')
-
- user = authenticate(username=username.strip().lower(),password=pin.strip())
- if user:
- if isinstance(user,django.contrib.auth.models.User):
- print('tipo amministratore',type(user))
- request.session['AdminId'] = user.id
- setLog(1,amministratore=user)
- ### comunicazioni ###
- sm = ServizioMail(debug=True)
- comunicazione = None
- try:
- comunicazione = Comunicazione.objects.get(pk=1)
- except Comunicazione.DoesNotExist as dne:
- print("Record comunicazione inesistente",dne)
- if comunicazione:
- sm.set_mailfrom=comunicazione.mittente
- sm.add_to(user.email)
- sm.set_soggetto(comunicazione.soggetto)
- sm.set_corpo(comunicazione.corpo)
- sm_data = dict()
- utente=dict() #adattamento campo utente
- utente['nome'] = user.get_username()
- utente['mail'] = user.email
- sm_data['utente'] = utente
- sm.set_data(sm_data)
- sm.send()
- ### comunicazioni ###
- return HttpResponseRedirect(reverse("azienda:welcome"))
- else:
- temp={}
- temp['cfisc'] = ''
- temp['passs'] = ''
- result = LoginUser(temp)
- data['login'] = result
- return render(request,'login.html',data)
|