views.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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. comunicazione = None
  48. try:
  49. comunicazione = Comunicazione.objects.get(pk=2)
  50. except Comunicazione.DoesNotExist as dne:
  51. print('comunicazione non valida',dne)
  52. if comunicazione:
  53. sm = ServizioMail(debug=True)
  54. sm.set_mailfrom=comunicazione.mittente
  55. sm.add_to(u.mail)
  56. sm.set_soggetto(comunicazione.soggetto)
  57. sm.set_corpo(comunicazione.corpo)
  58. sm_data = dict()
  59. sm_data['utente'] = u
  60. sm.set_data(sm_data)
  61. sm.send()
  62. ### comunicazioni ###
  63. return HttpResponseRedirect(reverse("utente:download"))
  64. else: # l'utente ordinario non esiste
  65. print('verifica amministratore')
  66. user = authenticate(username=username.strip().lower(),password=pin.strip())
  67. if user:
  68. if isinstance(user,django.contrib.auth.models.User):
  69. print('tipo amministratore',type(user))
  70. request.session['AdminId'] = user.id
  71. setLog(1,amministratore=user)
  72. ### comunicazioni ###
  73. sm = ServizioMail(debug=True)
  74. comunicazione = None
  75. try:
  76. comunicazione = Comunicazione.objects.get(pk=1)
  77. except Comunicazione.DoesNotExist as dne:
  78. print("Record comunicazione inesistente",dne)
  79. if comunicazione:
  80. sm.set_mailfrom=comunicazione.mittente
  81. sm.add_to(user.email)
  82. sm.set_soggetto(comunicazione.soggetto)
  83. sm.set_corpo(comunicazione.corpo)
  84. sm_data = dict()
  85. utente=dict() #adattamento campo utente
  86. utente['nome'] = user.get_username()
  87. utente['mail'] = user.email
  88. sm_data['utente'] = utente
  89. sm.set_data(sm_data)
  90. sm.send()
  91. ### comunicazioni ###
  92. return HttpResponseRedirect(reverse("azienda:welcome"))
  93. else:
  94. temp={}
  95. temp['cfisc'] = ''
  96. temp['passs'] = ''
  97. result = LoginUser(temp)
  98. data['login'] = result
  99. return render(request,'login.html',data)