views.py 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. from django.shortcuts import render
  2. from django.http import HttpResponseRedirect
  3. from django.urls import reverse
  4. from .models import *
  5. from .forms import *
  6. from sicurezza.views import *
  7. from comunicazioni.views import *
  8. def AliasList(request):
  9. session = getSessionParms(request)
  10. userauth = session['_userauth_']
  11. alias2edit = session['_alias2edit_']
  12. domain2edit = session['_domain2edit_']
  13. request.session['_from_']="Alias:AliasList"
  14. try:
  15. utenteautorizzato = User.objects.get(pk=userauth)
  16. except User.DoesNotExist as dne:
  17. return HttpResponseRedirect(reverse('Login:login',args={}))
  18. if not domain2edit:
  19. domain2edit = utenteautorizzato.domain.id
  20. dominio = Domini.objects.get(pk=domain2edit)
  21. aliaslist = Alias.objects.filter(domain=domain2edit).order_by('mailfrom')
  22. value={}
  23. value['utenteautorizzato'] = utenteautorizzato
  24. value['alias'] = None
  25. value['aliaslist'] = aliaslist
  26. value['dominio'] = dominio
  27. value['navbar'] = True
  28. print("livello autorizzazione",utenteautorizzato.securitylevel_id)
  29. securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
  30. securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
  31. securitylist = getSecurityList(securityrow)
  32. value['securitylist'] = securitylist
  33. value['securityrow'] = securityrow
  34. value['securityrowLen'] = len(securityrow)
  35. if request.method=="POST":
  36. if "Nuovo alias" in request.POST:
  37. print('nuovo alias')
  38. request.session['_alias2edit_'] = 0
  39. #return HttpResponseRedirect(reverse('Alias:AliasNew',args={}))
  40. return HttpResponseRedirect(reverse('Alias:AliasEdit',args=[]))
  41. if "IndietroButton" in request.POST:
  42. return HttpResponseRedirect(reverse('Domini:DomainServizi'))
  43. if "edit" in request.POST:
  44. print('id da editare',request.POST['edit'])
  45. request.session['_alias2edit_'] = request.POST['edit']
  46. return HttpResponseRedirect(reverse('Alias:AliasEdit',args={}))
  47. if "enabledisablebutton" in request.POST :
  48. print('id da disattivare/attivare',request.POST['enabledisablebutton'])
  49. idpost = request.POST['enabledisablebutton']
  50. u = Alias.objects.get(pk=idpost)
  51. u.enabled = not u.enabled
  52. if not u.locked: u.save()
  53. if 'deletebutton' in request.POST:
  54. print('id da disattivare',request.POST['deletebutton'])
  55. idpost = request.POST['deletebutton']
  56. u = Alias.objects.get(pk=idpost)
  57. print('u.tobedelete',u.tobedeleted)
  58. if not u.locked: # non deve essere bloccato e non deve essere abilitato
  59. u.tobedeleted = not u.tobedeleted
  60. if not u.locked: u.save()
  61. return render(request,"Alias.List.html",value)
  62. def AliasEdit(request):
  63. session = getSessionParms(request)
  64. userauth = session['_userauth_']
  65. alias2edit = session['_alias2edit_']
  66. domain2edit = session['_domain2edit_']
  67. try:
  68. utenteautorizzato = User.objects.get(pk=userauth)
  69. except User.DoesNotExist as dne:
  70. return HttpResponseRedirect(reverse('Login:login',args={}))
  71. value={}
  72. value['utenteautorizzato'] = utenteautorizzato
  73. value['navbar'] = True
  74. print("livello autorizzazione",utenteautorizzato.securitylevel_id)
  75. securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
  76. securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
  77. securitylist = getSecurityList(securityrow)
  78. value['securitylist'] = securitylist
  79. value['securityrow'] = securityrow
  80. value['securityrowLen'] = len(securityrow)
  81. domain = utenteautorizzato.domain
  82. try:
  83. domain = Domini.objects.get(pk=domain2edit)
  84. except domain.DoesNotExist as dne:
  85. print(dne)
  86. alias = Alias()
  87. alias.domain = domain
  88. alias.enabled = True
  89. alias.locked = False
  90. alias.tobedeleted = False
  91. try:
  92. alias = Alias.objects.get(pk=alias2edit)
  93. except Alias.DoesNotExist as dne:
  94. print(dne)
  95. print("Alias:",alias.id)
  96. value['alias'] = alias
  97. # non effettua il salvataggio, ma ritorna alla lista FTP
  98. if 'Ritorno' in request.POST:
  99. return HttpResponseRedirect(reverse('Alias:AliasList'))
  100. if request.method == 'POST':
  101. formalias = formAlias(request.POST)
  102. formalias.update()
  103. if formalias.is_valid():
  104. print("alias da salvare:",alias.id)
  105. print("dominio",formalias.cleaned_data.get('domain'))
  106. if not alias.locked: alias.mailfrom = formalias.cleaned_data.get('mailfrom').lower()
  107. if not alias.locked: alias.domain_id = domain.id
  108. if not alias.locked: alias.mailto = formalias.cleaned_data.get('mailto').lower()
  109. print("record.mailto:",alias.mailto)
  110. alias.nota = formalias.cleaned_data.get('nota')
  111. alias.locked = formalias.cleaned_data.get('locked')
  112. if not alias.locked: alias.tobedeleted = formalias.cleaned_data.get('tobedeleted')
  113. if not alias.locked: alias.enabled = formalias.cleaned_data.get('enabled')
  114. if alias.tobedeleted: alias.enabled=False
  115. alias.save()
  116. mailtest = alias.mailfrom + '@' + alias.domain.nome
  117. sm = ServizioMail()
  118. sm.set_rcptto(mailtest.strip())
  119. template=Template.objects.get(pk=getConfigurazione("alias:info"))
  120. sm.set_oggetto(template.oggetto)
  121. sm.set_soggetto(template.soggetto)
  122. dictdict={}
  123. dictdict['alias'] = alias
  124. sm.set_data(dictdict)
  125. sm.send()
  126. print("record alias:",alias.id)
  127. request.session['_alias2edit_'] = alias.id
  128. return HttpResponseRedirect(reverse('Alias:AliasListList'))
  129. else:
  130. print('notvalid')
  131. else:
  132. ## verifica se e' post o meno....
  133. print('non e\' post')
  134. value_account = {}
  135. value_account['mailfrom'] = alias.mailfrom
  136. value_account['domain'] = alias.domain_id
  137. value_account['mailto'] = alias.mailto
  138. value_account['enabled'] = alias.enabled
  139. value_account['tobedeleted'] = alias.tobedeleted
  140. value_account['locked'] = alias.locked
  141. value_account['nota'] = alias.nota
  142. value_account['utenteautorizzato'] = ''.join((utenteautorizzato.mail,'@',utenteautorizzato.domain.nome))
  143. print('value_account',value_account)
  144. formalias = formAlias(value_account)
  145. formalias.update()
  146. value['formalias'] = formalias
  147. ## check non passato
  148. print("formalias.errors",formalias.errors)
  149. for e in formalias.errors:
  150. print("errors:",e)
  151. return render(request,'Alias.Edit.html',value)