2
0

views.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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 "edit" in request.POST:
  42. print('id da editare',request.POST['edit'])
  43. request.session['_alias2edit_'] = request.POST['edit']
  44. return HttpResponseRedirect(reverse('Alias:AliasEdit',args={}))
  45. if "enabledisablebutton" in request.POST :
  46. print('id da disattivare/attivare',request.POST['enabledisablebutton'])
  47. idpost = request.POST['enabledisablebutton']
  48. u = Alias.objects.get(pk=idpost)
  49. u.enabled = not u.enabled
  50. if not u.locked: u.save()
  51. if 'deletebutton' in request.POST:
  52. print('id da disattivare',request.POST['deletebutton'])
  53. idpost = request.POST['deletebutton']
  54. u = Alias.objects.get(pk=idpost)
  55. if not u.locked and not u.enabled:
  56. u.tobedeleted = not u.tobedeleted
  57. if u.locked: u.save()
  58. return render(request,"Alias.List.html",value)
  59. def AliasEdit(request):
  60. session = getSessionParms(request)
  61. userauth = session['_userauth_']
  62. alias2edit = session['_alias2edit_']
  63. domain2edit = session['_domain2edit_']
  64. try:
  65. utenteautorizzato = User.objects.get(pk=userauth)
  66. except User.DoesNotExist as dne:
  67. return HttpResponseRedirect(reverse('Login:login',args={}))
  68. value={}
  69. value['utenteautorizzato'] = utenteautorizzato
  70. value['navbar'] = True
  71. print("livello autorizzazione",utenteautorizzato.securitylevel_id)
  72. securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
  73. securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
  74. securitylist = getSecurityList(securityrow)
  75. value['securitylist'] = securitylist
  76. value['securityrow'] = securityrow
  77. value['securityrowLen'] = len(securityrow)
  78. domain = utenteautorizzato.domain
  79. try:
  80. domain = Domini.objects.get(pk=domain2edit)
  81. except domain.DoesNotExist as dne:
  82. print(dne)
  83. alias = Alias()
  84. alias.domain = domain
  85. alias.enabled = True
  86. alias.locked = False
  87. alias.tobedeleted = False
  88. try:
  89. alias = Alias.objects.get(pk=alias2edit)
  90. except Alias.DoesNotExist as dne:
  91. print(dne)
  92. print("Alias:",alias.id)
  93. value['alias'] = alias
  94. # non effettua il salvataggio, ma ritorna alla lista FTP
  95. if 'Ritorno' in request.POST:
  96. return HttpResponseRedirect(reverse('Alias:AliasList'))
  97. if request.method == 'POST':
  98. formalias = formAlias(request.POST)
  99. formalias.update()
  100. if formalias.is_valid():
  101. print("alias da salvare:",alias.id)
  102. print("dominio",formalias.cleaned_data.get('domain'))
  103. if not alias.locked: alias.mailfrom = formalias.cleaned_data.get('mailfrom').lower()
  104. if not alias.locked: alias.domain_id = domain.id
  105. if not alias.locked: alias.mailto = formalias.cleaned_data.get('mailto').lower()
  106. print("record.mailto:",alias.mailto)
  107. alias.nota = formalias.cleaned_data.get('nota')
  108. alias.locked = formalias.cleaned_data.get('locked')
  109. if not alias.locked: alias.tobedeleted = formalias.cleaned_data.get('tobedeleted')
  110. if not alias.locked: alias.enabled = formalias.cleaned_data.get('enabled')
  111. if alias.tobedeleted: alias.enabled=False
  112. alias.save()
  113. mailtest = alias.mailfrom + '@' + alias.domain.nome
  114. sm = ServizioMail()
  115. sm.set_rcptto(mailtest.strip())
  116. template=Template.objects.get(pk=getConfigurazione("alias:info"))
  117. sm.set_oggetto(template.oggetto)
  118. sm.set_soggetto(template.soggetto)
  119. dictdict={}
  120. dictdict['alias'] = alias
  121. sm.set_data(dictdict)
  122. sm.send()
  123. print("record alias:",alias.id)
  124. request.session['_alias2edit_'] = alias.id
  125. return HttpResponseRedirect(reverse('Alias:AliasListList'))
  126. else:
  127. print('notvalid')
  128. else:
  129. ## verifica se e' post o meno....
  130. print('non e\' post')
  131. value_account = {}
  132. value_account['mailfrom'] = alias.mailfrom
  133. value_account['domain'] = alias.domain_id
  134. value_account['mailto'] = alias.mailto
  135. value_account['enabled'] = alias.enabled
  136. value_account['tobedeleted'] = alias.tobedeleted
  137. value_account['locked'] = alias.locked
  138. value_account['nota'] = alias.nota
  139. value_account['utenteautorizzato'] = ''.join((utenteautorizzato.mail,'@',utenteautorizzato.domain.nome))
  140. print('value_account',value_account)
  141. formalias = formAlias(value_account)
  142. formalias.update()
  143. value['formalias'] = formalias
  144. ## check non passato
  145. print("formalias.errors",formalias.errors)
  146. for e in formalias.errors:
  147. print("errors:",e)
  148. return render(request,'Alias.Edit.html',value)