views.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. from django.shortcuts import render
  2. from django.http import HttpResponse,HttpResponseRedirect,FileResponse
  3. from django.urls import reverse
  4. from .forms import *
  5. from config.views import getConfig
  6. from comunicazione.views import ServizioMail
  7. from utente.models import *
  8. from django.contrib.auth import authenticate
  9. import django
  10. from att.views import *
  11. def start(request):
  12. '''
  13. da qui si comincia
  14. l'utente e' invitato a inserire il suo codice fiscale e la password/pin assegnata in fase di visita medica
  15. se i dati corrispondono, si forniscono i file e alcune info di servizio
  16. '''
  17. request.session.flush()
  18. request.session.set_expiry(3600)
  19. data = dict()
  20. data['HeaderTitle'] = getConfig('HeaderTitle')
  21. if request.method=="POST":
  22. result = LoginUser(request.POST)
  23. if result.is_valid():
  24. username = result.cleaned_data['cfisc']
  25. pin = result.cleaned_data['passs']
  26. #verifica corrispondenza utente
  27. u = None
  28. try:
  29. # verifica che esista un utente ordinario
  30. u = Utente.objects.get(codicefiscale=username.upper())
  31. except Utente.DoesNotExist as dne:
  32. print("non ci provare")
  33. u = None
  34. if u: #utente esiste
  35. if u.pin.strip()== pin:
  36. # password valida
  37. data = dict()
  38. data['u'] = u
  39. #data['settings'] = settings
  40. #data['static'] = static
  41. request.session['UserId'] = u.id
  42. print('utente validato:',u.nome)
  43. setLog(1,utente=u)
  44. #setNewLog(1,{'u':u.nome})
  45. ### comunicazioni ###
  46. if len(u.mail) > 0:
  47. sm = ServizioMail(debug=True)
  48. comunicazione = Comunicazione.objects.get(pk=2)
  49. sm.set_mailfrom=comunicazione.mittente
  50. sm.add_to(u.mail)
  51. sm.set_soggetto(comunicazione.soggetto)
  52. sm.set_corpo(comunicazione.corpo)
  53. sm_data = dict()
  54. sm_data['utente'] = u
  55. sm.set_data(sm_data)
  56. sm.send()
  57. ### comunicazioni ###
  58. return HttpResponseRedirect(reverse("utente:download"))
  59. else: # l'utente ordinario non esiste
  60. print('verifica amministratore')
  61. user = authenticate(username=username.strip().lower(),password=pin.strip())
  62. if user:
  63. if isinstance(user,django.contrib.auth.models.User):
  64. print('tipo amministratore',type(user))
  65. request.session['AdminId'] = user.id
  66. setLog(1,amministratore=user)
  67. ### comunicazioni ###
  68. sm = ServizioMail(debug=True)
  69. comunicazione = Comunicazione.objects.get(pk=1)
  70. sm.set_mailfrom=comunicazione.mittente
  71. sm.add_to(user.email)
  72. sm.set_soggetto(comunicazione.soggetto)
  73. sm.set_corpo(comunicazione.corpo)
  74. sm_data = dict()
  75. sm_data['user'] = user
  76. sm.set_data(sm_data)
  77. sm.send()
  78. ### comunicazioni ###
  79. return HttpResponseRedirect(reverse("azienda:welcome"))
  80. else:
  81. temp={}
  82. temp['cfisc'] = ''
  83. temp['passs'] = ''
  84. result = LoginUser(temp)
  85. data['login'] = result
  86. return render(request,'login.html',data)