| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- from django.shortcuts import render
- from django.http import HttpResponseRedirect
- from django.urls import reverse
- import django.db.utils
- from .models import *
- from .forms import *
- from supporto import managepassword
- from sicurezza.views import *
- from logger.views import *
- from comunicazioni.views import *
- from datetime import date
- from configurazione.views import *
- import json
- from mqtt import views as m
- from mqtt.views import mqtt # nuovo sistema mqtt che va a sostiture 'm'
- # Create your views here.
- def listeList(request):
- '''
- listing delle liste
- '''
- session = getSessionParms(request)
- userauth = session['_userauth_']
- liste2edit = session['_liste2edit_']
- domain2edit = session['_domain2edit_']
- request.session['_from_']="Liste:ListeList"
- try:
- utenteautorizzato = User.objects.get(pk=userauth)
- except User.DoesNotExist as dne:
- return HttpResponseRedirect(reverse('Login:login',args={}))
- if not domain2edit:
- domain2edit = utenteautorizzato.domain.id
- dominio = Domini.objects.get(pk=domain2edit)
- listelist = Liste.objects.filter(dominio=domain2edit).order_by('nome')
- value={}
- value['utenteautorizzato'] = utenteautorizzato
- value['user'] = None
- value['listelist'] = listelist
- value['dominio'] = dominio
- value['navbar'] = True
- print("livello autorizzazione",utenteautorizzato.securitylevel_id)
- securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
- securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
- value['securityrow'] = securityrow
- value['securityrowLen'] = len(securityrow)
- if request.method=="POST":
- if "Nuova Lista" in request.POST:
- print('nuova lista')
- request.session['_liste2edit_'] = 0
- return HttpResponseRedirect(reverse('Liste:ListeEdit',args={}))
- if "edit" in request.POST:
- print('id da editare',request.POST['edit'])
- request.session['_listeaccount2edit_'] = request.POST['edit']
- return HttpResponseRedirect(reverse('Liste:ListeAccount',args={}))
- if "disable" in request.POST:
- print('id da disattivare',request.POST['disable'])
- idpost = request.POST['disable']
- u = Liste.objects.get(pk=idpost)
- print('id',u.mail.nome)
- u.enabled = False
- #t = date.today()
- #u.account_date_disabled=t.strftime("%Y-%m-%d")
- u.save()
- if "enable" in request.POST:
- print('id da attivare',request.POST['enable'])
- idpost = request.POST['enable']
- u = Liste.objects.get(pk=idpost)
- print(f'lista: {u.nome}')
- u.enabled=True
- #u.account_date_disabled=None
- u.save()
- else:
- print('post non validato',request.POST)
- return render(request,"ListeList.html",value)
- def listeEdit(request):
- '''
- edit e add di una nuova lista
- '''
-
- session = getSessionParms(request)
- userauth = session['_userauth_']
- liste2edit = session['_liste2edit_']
- #listeaccount2edit = session['_listeaccount2edit_']
- domain2edit = session['_domain2edit_']
- request.session['_from_']="Liste:ListeListAccount"
- try:
- utenteautorizzato = User.objects.get(pk=userauth)
- except User.DoesNotExist as dne:
- return HttpResponseRedirect(reverse('Login:login',args={}))
- if not domain2edit:
- domain2edit = utenteautorizzato.domain.id
- dominio = Domini.objects.get(pk=domain2edit)
- dominioutenti = User.objects.filter(domain=dominio.id).filter(enabled=1)
- if not liste2edit or liste2edit==0:
- liste = Liste()
- else:
- liste = Liste.objects.get(pk=liste2edit)
- value={}
- value['utenteautorizzato'] = utenteautorizzato
- value['user'] = None
- value['listelist'] = liste.nome
- #value['listelistaccount'] = listelistAccount
- value['dominio'] = dominio
- value['dominioutenti'] = dominioutenti
- value['navbar'] = True
- print("livello autorizzazione",utenteautorizzato.securitylevel_id)
- securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
- securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
- securitylist = getSecurityList(securityrow)
- value['securityrow'] = securityrow
- value['securityrowLen'] = len(securityrow)
- value['securitylist'] = securitylist
- lal = ListAddListForm()
- value['lal'] = lal
- return render(request,"Listeedit.html",lal)
- def listeAccount(request):
- '''
- liste degli utenti per lista
- '''
- session = getSessionParms(request)
- userauth = session['_userauth_']
- liste2edit = session['_liste2edit_']
- listeaccount2edit = session['_listeaccount2edit_']
- domain2edit = session['_domain2edit_']
- request.session['_from_']="Liste:ListeListAccount"
- try:
- utenteautorizzato = User.objects.get(pk=userauth)
- except User.DoesNotExist as dne:
- return HttpResponseRedirect(reverse('Login:login',args={}))
- if not domain2edit:
- domain2edit = utenteautorizzato.domain.id
- dominio = Domini.objects.get(pk=domain2edit)
- dominioutenti = User.objects.filter(domain=dominio.id).filter(enabled=1)
- liste = Liste.objects.get(pk=listeaccount2edit)
- listelistAccount = ListeAccount.objects.filter(liste_id=listeaccount2edit).order_by('mail__mail')
- print(f'numero di record trovati: {len(listelistAccount)}')
- value={}
- value['utenteautorizzato'] = utenteautorizzato
- value['user'] = None
- value['listelist'] = liste.nome
- value['listelistaccount'] = listelistAccount
- value['dominio'] = dominio
- value['dominioutenti'] = dominioutenti
- value['navbar'] = True
- print("livello autorizzazione",utenteautorizzato.securitylevel_id)
- securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
- securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
- securitylist = getSecurityList(securityrow)
- value['securityrow'] = securityrow
- value['securityrowLen'] = len(securityrow)
- value['securitylist'] = securitylist
-
- # questo mqtt e' quello nuovo
- mq = mqtt()
- mq.build('topic','messaggio')
- mq.build('richiesta','MailingList')
- mq.build('stampa',True)
- tmp = dict()
- tmp['utenteautorizzato'] = "".join((utenteautorizzato.mail,'@',utenteautorizzato.domain.nome))
- mq.build('data',tmp)
- mq.pubblica()
- tmp=None
- # mqtt vecchio stampo
- c = m.start()
- m.publish(c,"Messaggio/Ml","Accesso alla mailing list di {}".format(utenteautorizzato.nome))
- if request.method=="POST":
- print(request.POST)
- if "delete" in request.POST:
- print('id da cancellaree',request.POST['delete'])
- idpost = request.POST['delete']
- u = ListeAccount.objects.get(pk=idpost)
- u.delete()
- #u.enainprogress=0
- #u.disinprogress=0
- #u.delinprogress=1
- #u.addinprogress=0
- #t = date.today()
- #u.save()
- q={}
- q['op']='unsub'
- if len(u.esterno):
- q['us'] = u.esterno
- else:
- q['us']="".join((u.mail.mail,"@",u.liste.dominio.nome))
- q['us'] = q['us'].lower()
- q['do']=u.liste.dominio.nome
- q['ml']=u.liste.nome
- q['au']="".join((utenteautorizzato.mail,"@",utenteautorizzato.domain.nome))
- m.publish(c,"Richiesta/Ml",json.dumps(q))
- if "disable" in request.POST:
- print('id da disattivare',request.POST['disable'])
- idpost = request.POST['disable']
- print('ippost disable',idpost)
- u = ListeAccount.objects.get(pk=idpost)
- print(u.enabled)
- u.enabled = False
- #u.disinprogress=
- #.enainprogress=0
- #.delinprogress=0
- #u.addinprogress=0
- t = date.today()
- u.save()
- q={}
- q['op']='unsub'
- if len(u.esterno):
- q['us'] = u.esterno
- else:
- q['us']="".join((u.mail.mail,"@",u.liste.dominio.nome))
- q['us'] = q['us'].lower()
- q['do']=u.liste.dominio.nome
- q['ml']=u.liste.nome
- q['au']="".join((utenteautorizzato.mail,"@",utenteautorizzato.domain.nome))
- m.publish(c,"Richiesta/Ml",json.dumps(q))
- if "enable" in request.POST:
- print('id da attivare',request.POST['enable'])
- idpost = request.POST['enable']
- print('idpost enable',idpost)
- u = ListeAccount.objects.get(pk=idpost)
- u.enabled=True
- #u.disinprogress=0
- #u.enainprogress=1
- #u.delinprogress=0
- #u.addinprogress=0
- u.save()
- q={}
- q['op']='sub'
- if len(u.esterno):
- q['us'] = u.esterno
- else:
- q['us']="".join((u.mail.mail,"@",u.liste.dominio.nome))
- q['us']=q['us'].lower()
- q['do']=u.liste.dominio.nome
- q['ml']=u.liste.nome
- q['au']="".join((utenteautorizzato.mail,"@",utenteautorizzato.domain.nome))
- m.publish(c,"Richiesta/Ml",json.dumps(q))
- if 'verifica' in request.POST:
- # verifica che l'account sia effettivamente registrato nella mailing list.
- print('id da verificare',request.POST['verifica'])
- idpost = request.POST['verifica']
- u = ListeAccount.objects.get(pk=idpost)
- q=dict()
- q['op']='check'
- if len(u.esterno):
- q['us'] = u.esterno
- else:
- q['us']="".join((u.mail.mail,"@",u.liste.dominio.nome))
- q['us']=q['us'].lower()
- q['do']=u.liste.dominio.nome
- q['ml']=u.liste.nome
- q['au']="".join((utenteautorizzato.mail,"@",utenteautorizzato.domain.nome))
- q['au']=q['au'].lower()
- m.publish(c,"Richiesta/Ml",json.dumps(q))
- if 'verificaTutti' in request.POST:
- print('verificaTutti')
- # verifica che l'account sia effettivamente registrato nella mailing list.
- q=dict()
- q['op']='checkAll'
- q['do']=liste.dominio.nome
- q['ml']=liste.nome
- q['au']="".join((utenteautorizzato.mail,"@",utenteautorizzato.domain.nome))
- q['au']=q['au'].lower()
- m.publish(c,"Richiesta/Ml",json.dumps(q))
- if 'Ritorno' in request.POST:
- return HttpResponseRedirect(reverse('Liste:ListeList',args={}))
- if 'Registra' in request.POST:
- # verificati i tasti, si passa all'inserimento del record.
- # abbiamo o la mail scelta dall'elenco, o la mail esterna.
- f = ListAddAccountForm(request.POST)
- f.update(dominio.id)
- if f.is_valid():
- u = ListeAccount()
- u.liste = liste
- u.mail_id = f.cleaned_data.get('mail_interne')
- u.esterno = f.cleaned_data.get('mail_esterne')
- u.enable=True
- #u.disinprogress=0
- #u.enainprogress=0
- #u.delinprogress=0
- #u.addinprogress=1
- try:
- if int(u.mail_id) > 0 or (len(u.esterno.split("@")) == 2):
- u.save()
- except django.db.utils.IntegrityError as ie:
- print(ie)
- q={}
- q['op']='sub'
- print("u.mail_id",u.mail_id)
- if int(u.mail_id) > 0:
- q['us']="".join((u.mail.mail,"@",u.liste.dominio.nome))
- else:
- if len(u.esterno) > 0:
- splitmail = u.esterno.split('@')
- if len(splitmail) == 2:
- q['us'] = "".join((splitmail[0],"@",splitmail[1]))
- q['do']=u.liste.dominio.nome
- q['ml']=u.liste.nome
- q['au']="".join((utenteautorizzato.mail,"@",utenteautorizzato.domain.nome))
- if 'us' in q:
- m.publish(c,"Richiesta/Ml",json.dumps(q))
- else:
- print(f.errors)
- laaf = ListAddAccountForm()
- laaf.update(dominio.id)
- value['laaf'] = laaf
- print(type(laaf))
- value['listelistaccount'] = ListeAccount.objects.filter(liste_id=listeaccount2edit).order_by('id')
- return render(request,"ListeListAccount.html",value)
|