| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721 |
- from django.shortcuts import render
- from django.http import HttpResponseRedirect
- from django.urls import reverse
- 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,datetime
- from configurazione.views import *
- from django.db import IntegrityError
- from mqtt import views as mm #questo dovrebbe essere il vecchio sistema
- from mqtt.views import mqtt
- import re
- import json
- def UserList(request):
- session = getSessionParms(request)
- userauth = session['_userauth_']
- user2edit = session['_user2edit_']
- domain2edit = session['_domain2edit_']
- request.session['_from_']="Utenti:UserList"
- print(next)
- if not user2edit:
- user2edit = userauth
- 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)
- userlist = User.objects.filter(domain=domain2edit).order_by('mail')
- value={}
- value['utenteautorizzato'] = utenteautorizzato
- value['user'] = None
- value['userlist'] = userlist
- 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)
- value['CANWRITE']=True #per il momento, questo flag serve a capire se e' un record nuovo
- if request.method=="POST":
- if "Nuova Email" in request.POST:
- print('nuova email')
- request.session['_user2edit_'] = -1
- return HttpResponseRedirect(reverse('Utenti:UserEdit',args={}))
- if "Lista Email" in request.POST:
- request.session['_user2edit_'] = -1
- return HttpResponseRedirect(reverse('Utenti:UserReadOnlyList',args={}))
- if "editbutton" in request.POST:
- print('id da editare',request.POST['editbutton'])
- request.session['_user2edit_'] = request.POST['editbutton']
- return HttpResponseRedirect(reverse('Utenti:UserEdit',args={}))
- if "enabledisablebutton" in request.POST:
- print('id da disattivare',request.POST['enabledisablebutton'])
- idpost = request.POST['enabledisablebutton']
- u = User.objects.get(pk=idpost)
- u.enabled = not u.enabled
- if u.enabled: u.tobedeleted = False
- t = date.today()
- u.account_date_disabled=t.strftime("%Y-%m-%d")
- u.save()
- if 'enablepassword' in request.POST:
- print('id da attivare',request.POST['enablepassword'])
- idpost = request.POST['enablepassword']
- u = User.objects.get(pk=idpost)
- u.enabled = True
- u.tobedeleted = False
- u.account_date_disabled = None
- u.clear = getPassword()
- u.crypt = managepassword.GeneraPassword(u.clear)
- u.save()
- request.session['_user2edit_'] = idpost
- return HttpResponseRedirect(reverse('Utenti:UserEdit',args={}))
- if 'tobedeletedbutton' in request.POST:
- print('id da cancellare',request.POST['tobedeletedbutton'])
- idpost = request.POST['tobedeletedbutton']
- u = User.objects.get(pk=idpost)
- u.tobedeleted = not u.tobedeleted
- u.save()
-
- if 'sendInfoToAdmin' in request.POST:
- print('richista informazioni mail')
- sm = ServizioMail()
- idpost = request.POST['sendInfoToAdmin']
- record = User.objects.get(pk=idpost)
- print(record.nome)
- sm.set_rcptto(r'{}@{}'.format(utenteautorizzato.mail.strip(),utenteautorizzato.domain.nome.strip()))
- template=Template.objects.get(pk=getConfigurazione("mail:info:info"))
- sm.set_oggetto(template.oggetto)
- sm.set_soggetto(template.soggetto)
- dictdict={}
- dictdict['utente'] = record
- dictdict['utenteautorizzato'] = utenteautorizzato
- dictdict['data'] = datetime.now()
- sm.set_data(dictdict)
- sm.send()
- if 'ritorno' in request.POST:
- return HttpResponseRedirect(reverse('Login:welcome',args={}))
- if 'notaSubmit' in request.POST:
- fm = formMsg(request.POST)
- if fm.is_valid():
- oggetto = fm.cleaned_data.get('oggetto')
- soggetto = fm.cleaned_data.get('soggetto')
- conferma = fm.cleaned_data.get('conferma')
- utentiToSend = User.objects.filter(domain=dominio).filter(enabled=True)
- print('dominio',dominio.id)
- print('numero di utenti da raggiungere',len(utentiToSend))
- print('soggetto',soggetto)
- print('oggetto',oggetto)
- print('conferma',conferma)
- if conferma:
- count=0
- for uts in utentiToSend:
- count = count +1
- print('generato nuovo record',count,uts.mail)
- sm = ServizioMail()
- sm.set_rcptto(r'{}@{}'.format(uts.mail.strip(),uts.domain.nome.strip()))
- sm.set_oggetto(oggetto)
- sm.set_soggetto(soggetto)
- dictdict={}
- dictdict['utente'] = uts
- dictdict['utenteautorizzato'] = utenteautorizzato
- dictdict['data'] = datetime.now()
- sm.set_data(dictdict)
- sm.send()
- if 'alldeletedbutton' in request.POST:
- print('Richiesta di cancellazione di tutte le email disattivate')
- listaemail = User.objects.filter(domain=dominio.id)
- for lm in listaemail:
- if not lm.enabled:
- print('email',lm.mail)
- lm.tobedeleted=True
- lm.save()
- print('elenco delle email da rimuovere',len(listaemail))
- return render(request,"Utente.List.html",value)
- '''
- sia userEdit che UserNew usano uno schema semplificato per gestire gli utenti.
- per evitare di usare due funzioni che per la maggior parte del tempo si sovrappongono,
- genero una terza funzione proprio per gestire tutte le parti comuni.
- Questa parte comune, chiamata usermaster, ricevera' svariati parametri e ne ritornera'
- altrettanti per gestire l'oggetto mail sia vuoto,nuovo, che da editare.
- '''
- def UserEdit(request):
- session = getSessionParms(request)
- userauth = session['_userauth_']
- user2edit = session['_user2edit_']
- print('user2edit: ',user2edit)
- domain2edit = session['_domain2edit_']
- _from_ = session['_from_']
- print("_from_",_from_)
- try:
- utenteautorizzato = User.objects.get(pk=userauth)
- except User.DoesNotExist as dne:
- return HttpResponseRedirect(reverse('Login:login',args={}))
- try:
- dominio = Domini.objects.get(pk=domain2edit)
- except Domini.DoesNotExist as dne:
- print("errore, il dominio non e' correttamente gestito in useredit")
- dominio = utenteautorizzato.domain
- value={}
- value['CANWRITE']=False
- mailinglist = list()
- nuovorecord = False
- if not user2edit:
- # non e' presente un utente.
- record = utenteautorizzato
- elif int(user2edit)>0:
- record = User.objects.get(pk=user2edit)
- totalmailinglist = record.domain.liste_set.all()
- for i in totalmailinglist:
- if i.listeaccount_set.filter(mail__id = record.id):
- mailinglist.append(i)
- print("stato mailinglist",mailinglist)
- value['mailinglist'] = mailinglist
- #13.9.22
- #questo campo deve essere sempre valorizzato.
- #soprattutto in vista del cambiamento al riferimento server dal dominio al singolo account.
- if not record.mail_server_id:
- record.mail_server_id = dominio.mail_server_id
- elif int(user2edit)-1:
- nuovorecord = True
- print('dominio:',dominio.nome)
- record = User()
- record.domain = dominio
- record.enabled = dominio.enabled
- record.pop3 = dominio.pop3
- record.imap = dominio.imap
- record.webmail = dominio.webmail
- record.smtp = dominio.smtp
- record.smtp_relay = dominio.smtp_relay
- record.sieve = dominio.sieve
- record.antivirus = dominio.antivirus
- record.spf = dominio.spf
- record.blacklist = dominio.blacklist
- record.nextcloud = dominio.nextcloud
- record.nextcloud_pwd = dominio.nextcloud_pwd
- record.proxy = dominio.proxy
- record.lmtp = dominio.lmtp
- record.password_change_enable=1
- # memorizza i dati del server di posta dal dominio
- # ma solo se l'utente non e' gia presente.
- record.mail_server_id = dominio.mail_server_id
- record.mail_proxy_id = dominio.mail_proxy_id
- record.lmtp_server_id = dominio.lmtp_server_id
- record.sql_remote_id = dominio.sql_remote_id
- record.securitylevel_id = getConfigurazione('default-level')
- record.warning_mail_quota = dominio.warning_mail_quota
- #record.limit_mail_quota = dominio.limit_mail_quota
- record.clear = getPassword()
- record.crypt = managepassword.GeneraPassword(record.clear)
- print('record.clear:',record.clear)
- mq = mqtt()
- # mq.build('topic','messaggio') #vediamo se il default funziona
- # 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
- value['utenteautorizzato'] = utenteautorizzato
- value['user'] = record
- value['userlist'] = None
- value['dominio'] = record.domain
- 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
- value['mail_password_length']=getConfigurazione('mail_password_length')
- value['mail_password_message'] = getConfigurazione('mail_password_message')
-
- d = Domini.objects.all().order_by('nome')
- domainlist = []
- for i in d:
- domainlist.append((i.id,i.nome))
- value['domainlist'] = domainlist
- m = MailServer.objects.all().order_by('ip')
- value['mailserverlist'] = m.filter(enabled=True)
- value['lmtpserverlist'] = m.filter(enabled=True)
- value['sqlremotelist'] = m.filter(enabled=True)
- value['mailproxylist'] = m.filter(enabled=True)
- # livello utenti (si da' la possibilita di selezionare fino al livello proprio)
- livello = SecurityLevel.objects.filter(id__lte = utenteautorizzato.securitylevel_id).filter(enabled=True)
- value['livello']=livello
- # non effettua il salvataggio, ma ritorna alla lista FTP
- if 'Ritorno' in request.POST:
- return HttpResponseRedirect(reverse('Utenti:UserList'))
- oldpassword = None
- if request.method=="POST":
- formemail = formEmail(request.POST)
- formemail.update()
- print("request Method: ",request.method)
- if 'emailtest' in request.POST:
- '''
- richiesta di invio dei parametri di test
- '''
- print("richiesto invio prova di stampa")
- buildemail(getConfigurazione('mail_from'),["{}@{}".format(record.mail,record.domain.nome)],'mail_test_subject','mail_test_body_html','mail_test_body_text',{'domain':record.domain.nome,'mail':record.mail})
- if 'sendInfoToMe' in request.POST:
- print('richeista informazioni mail')
- sm = ServizioMail()
- sm.set_rcptto(r'{}@{}'.format(record.mail.strip(),record.domain.nome.strip()))
- template=Template.objects.get(pk=getConfigurazione("mail:info:info"))
- sm.set_oggetto(template.oggetto)
- sm.set_soggetto(template.soggetto)
- dictdict={}
- dictdict['utente'] = record
- dictdict['utenteautorizzato'] = utenteautorizzato
- dictdict['precedente_password'] = oldpassword
- dictdict['data'] = datetime.now()
- sm.set_data(dictdict)
- sm.send()
- if 'sendInfoToAdmin' in request.POST:
- print('richeista informazioni mail')
- sm = ServizioMail()
- sm.set_rcptto(r'{}@{}'.format(utenteautorizzato.mail.strip(),utenteautorizzato.domain.nome.strip()))
- template=Template.objects.get(pk=getConfigurazione("mail:info:info"))
- sm.set_oggetto(template.oggetto)
- sm.set_soggetto(template.soggetto)
- dictdict={}
- dictdict['utente'] = record
- dictdict['utenteautorizzato'] = utenteautorizzato
- dictdict['data'] = datetime.now()
- sm.set_data(dictdict)
- sm.send()
- if formemail.is_valid():
- print("Formemail.is_valid()")
- if 'mail' in formemail.cleaned_data:
- record.mail = formemail.cleaned_data.get('mail').lower() #le mail dovrebbero essere sempre salvate in minuscolo.
- record.nome = formemail.cleaned_data.get('nome') #dovrebbe venir modificato solo alla creazione
- record.domain_id = formemail.cleaned_data.get('dominio')
- # pero' non mi piace... dovrebbe reagire in base alla presenza dei campi nel form
- # secondo me devo toglierli dalla form di validazione e usarla solo per le cose importanti
- if utenteautorizzato.securitylevel_id > 5:
- if 'enabled' in formemail.cleaned_data:
- record.enabled = formemail.cleaned_data.get('enabled')
- if 'pop3' in formemail.cleaned_data:
- record.pop3 = formemail.cleaned_data.get('pop3')
- if 'imap' in formemail.cleaned_data:
- record.imap = formemail.cleaned_data.get('imap')
- if 'smtp' in formemail.cleaned_data:
- record.smtp = formemail.cleaned_data.get('smtp')
- if 'smtp_relay' in formemail.cleaned_data:
- record.smtp_relay = formemail.cleaned_data.get('smtp_relay')
- print(formemail.cleaned_data)
- if 'lmtp' in formemail.cleaned_data:
- record.lmtp = formemail.cleaned_data.get('lmtp')
- if 'lmtp_server' in formemail.cleaned_data:
- record.lmtp_server_id = formemail.cleaned_data.get('lmtp_server')
- if 'mail_server' in formemail.cleaned_data:
- record.mail_server_id = formemail.cleaned_data.get('mail_server')
- if 'mail_proxy' in formemail.cleaned_data:
- record.mail_proxy_id = formemail.cleaned_data.get('mail_proxy')
- if record.mail_proxy_id:
- record.proxy_host = record.mail_proxy.ip #dovra' essere rimosso in futuro
- if 'sql_remote' in formemail.cleaned_data:
- record.sql_remote_id = formemail.cleaned_data.get('sql_remote')
- else: record_sql_remote_id = 0
- if 'webmail' in formemail.cleaned_data:
- record.webmail = formemail.cleaned_data.get('webmail')
- if 'securitylevel' in formemail.cleaned_data:
- record.securitylevel_id = formemail.cleaned_data.get('securitylevel')
- if 'nextcloud' in formemail.cleaned_data:
- record.nextcloud = formemail.cleaned_data.get('nextcloud')
- if 'nextcloud_pwd' in formemail.cleaned_data:
- record.nextcloud_pwd = formemail.cleaned_data.get('nextcloud_pwd')
- if 'sms' in formemail.cleaned_data:
- record.sms = formemail.cleaned_data.get('sms')
- if 'sendafile' in formemail.cleaned_data:
- record.sendafile = formemail.cleaned_data.get('sendafile')
- if 'sieve' in formemail.cleaned_data:
- record.sieve = formemail.cleaned_data.get('sieve')
- if 'antivirus' in formemail.cleaned_data:
- record.antivirus = formemail.cleaned_data.get('antivirus')
- if 'blacklist' in formemail.cleaned_data:
- record.blacklist = formemail.cleaned_data.get('blacklist')
- if 'spf' in formemail.cleaned_data:
- record.spf = formemail.cleaned_data.get('spf')
- record.warning_mail_quota = formemail.cleaned_data.get('warning_mail_quota')
- record.limit_mail_quota = formemail.cleaned_data.get('limit_mail_quota')
- record.nota = formemail.cleaned_data.get('nota')
- record.mail_di_recupero = formemail.cleaned_data.get('mail_di_recupero')
- record.forward = formemail.cleaned_data.get('forward')
- print('stato password_change_enabled')
- print('password_change_enabled originale',record.password_change_enabled)
- print('password_change_enabled rilevato',formemail.cleaned_data.get('password_change_enabled'))
- if not 'password_change_enabled' in formemail.changed_data:
- print("presente campo password_change_enabled")
- record.password_change_enabled = formemail.cleaned_data.get('password_change_enabled')
- else:
- print("Campo password_change_enabled non presente")
- print('record.password_change_enabled',record.password_change_enabled)
- if record.password_change_enabled:
- oldpassword =record.clear #memorizza la vecchia password
- record.clear = formemail.cleaned_data.get('password1')
- record.crypt = managepassword.GeneraPassword(record.clear)
- if oldpassword != record.clear:
- oldchanged = True
- mq = mqtt()
- # mq.build('topic','messaggio') #vediamo se il default funziona
- # mq.build('richiesta','MailingList')
- mq.build('stampa',True)
- tmp = dict()
- tmp['utenteautorizzato'] = "".join((utenteautorizzato.mail,'@',utenteautorizzato.domain.nome))
- tmp['utentepassword'] = ''.join((record.mail,"@",record.domain.nome))
- tmp['vecchia password'] = oldpassword
- tmp['nuova password'] = record.clear
- mq.build('data',tmp)
- mq.pubblica()
- tmp=None
- t = date.today()
- record.last_password_update = t.strftime("%Y-%m-%d")
- record.tobedeleted = formemail.cleaned_data.get('tobedeleted')
- if record.tobedeleted:
- record.enabled = False
- record.save()
- mq = mqtt()
- # mq.build('topic','messaggio') #vediamo se il default funziona
- # mq.build('richiesta','MailingList')
- mq.build('stampa',True)
- tmp = dict()
- tmp['utenteautorizzato'] = "".join((utenteautorizzato.mail,'@',utenteautorizzato.domain.nome))
- tmp['utentetobedeleted'] = ''.join((record.mail,"@",record.domain.nome))
- mq.build('data',tmp)
- mq.pubblica()
- tmp=None
- return HttpResponseRedirect(reverse('Utenti:UserList'))
- try:
- record.save()
- except IntegrityError as ie:
- print('Integrity Error',ie)
- user2edit = record.id
- # quesito: come faccio a tornare alla pagina orginale?
- return HttpResponseRedirect(reverse(_from_,args={}))
- '''
- salvato il record, provvediamo anche a inviare i dati per mqtt per i server remoti
- l'operazione viene eseguita solo se sql_remote e' diverso da 0
- '''
- c = mm.start()
- if record.sql_remote_id:
- mml={}
- mml['op']='upd'
- mml['id']=record.id
- mml['rm']=record.sql_remote.ip
- print(mml)
- mm.publish(c,"Richiesta/Mail",json.dumps(mml))
- else: print("mqtt: sql_remote e' impostato a 0")
- '''
- salvato il recordo, provvediamo a inviare una mail
- sia all'account ufficiale che alla mail di riserva (se esiste)
- per comunicare l'effettivo aggiornamento e avvisare.
- '''
- mail_who = formemail.cleaned_data.get('mail_who')
- # si tratta di un nuovo record
- if nuovorecord:
- print('generato nuovo record')
- sm = ServizioMail()
- sm.set_rcptto(r'{}@{}'.format(record.mail.strip(),record.domain.nome.strip()))
- sm.add_to(re.findall("[\w\.-_]+@[\w\.]+",getConfigurazione('mail_notification')))
- #if utenteautorizzato.id == record.id:
- sm.add_to(utenteautorizzato.mail + "@" + utenteautorizzato.domain.nome)
- if mail_who:
- sm.add_to(re.findall("[\w\.-_]+@[\w\.]+",mail_who))
- template=Template.objects.get(pk=getConfigurazione("mail:info:account"))
- sm.set_oggetto(template.oggetto)
- sm.set_soggetto(template.soggetto)
- dictdict={}
- dictdict['utente'] = record
- dictdict['utenteautorizzato'] = utenteautorizzato
- dictdict['precedente_password'] = oldpassword
- dictdict['data'] = datetime.now()
- sm.set_data(dictdict)
- sm.send()
- else:
- if record.password_change_enabled and oldpassword != record.clear:
- print('richiesto aggiornamento password')
- sm = ServizioMail()
- sm.set_rcptto(r'{}@{}'.format(record.mail.strip(),record.domain.nome.strip()))
- sm.add_to(re.findall("[\w\.-_]+@[\w\.]+",getConfigurazione('mail_notification')))
- #if utenteautorizzato.id == record.id:
- sm.add_to(utenteautorizzato.mail + "@" + utenteautorizzato.domain.nome)
- if mail_who:
- sm.add_to(re.findall("[\w\.-_]+@[\w\.]+",mail_who))
- template=Template.objects.get(pk=getConfigurazione("mail:info:newpassword"))
- sm.set_oggetto(template.oggetto)
- sm.set_soggetto(template.soggetto)
- dictdict={}
- dictdict['utente'] = record
- dictdict['utenteautorizzato'] = utenteautorizzato
- dictdict['precedente_password'] = oldpassword
- dictdict['data'] = datetime.now()
- sm.set_data(dictdict)
- sm.send()
- if record.nextcloud and record.nextcloud_pwd:
- # la sezione nextcloud e' attiva per l'utente e la password e' in sync
- mq = mqtt()
- mq.build('stampa',True)
- mq.build('topic','nextcloud/password')
- tmp = dict()
- tmp['utenteautorizzato'] = "".join((utenteautorizzato.mail,'@',utenteautorizzato.domain.nome))
- tmp['utente'] = ''.join((record.mail,"@",record.domain.nome))
- tmp['password'] = record.clear
- mq.build('data',tmp)
- mq.pubblica()
- tmp=None
- mq = None
- user2edit = record.id
- request.session['_user2edit_'] = user2edit
- # quesito: come faccio a tornare alla pagina orginale?
- return HttpResponseRedirect(reverse(_from_,args={}))
- # pero' non vale, nel caso non dovessi dover tornare alla lista?
- # stavp giusto pensando di inviare il referer, per far capire dove tornare.
- else:
- print("formemail.is_valid non passato")
- print("formemail.errors")
- print(formemail.errors)
- for e in formemail.errors:
- print("errors:",e)
- print("***")
-
- # tecnicamente ricarica i dati dal post, ma se alcuni campi non ci sono, come si fa.
- formemail = formEmail(request.POST)
- formemail.update()
- value['formemail'] = formemail
-
- else:
-
- ## verifica se e' post o meno....
- print('Post Non validato')
- temp={}
- temp['sieve'] = record.sieve
- temp['antivirus'] = record.antivirus
- temp['blacklist'] = record.blacklist
- temp['spf'] = record.spf
- temp['mail'] = record.mail
- print("mail: ",temp['mail'])
- temp['nome'] = record.nome
- temp['dominio'] = record.domain_id
- temp['dominio_domain'] = record.domain.nome
- temp['password1'] = record.clear
- temp['password2'] = record.clear
- temp['clear'] = record.clear
- temp['securitylevel'] = record.securitylevel_id
- temp['enabled'] = record.enabled
- temp['pop3'] = record.pop3
- temp['imap'] = record.imap
- temp['smtp'] = record.smtp
- temp['smtp_relay'] = record.smtp_relay
- temp['lmtp'] = record.lmtp
- temp['lmtp_server'] = record.lmtp_server_id
- temp['mail_server'] = record.mail_server_id
- temp['sql_remote'] = record.sql_remote_id
- temp['mail_proxy'] = record.mail_proxy_id
- temp['nextcloud'] = record.nextcloud
- temp['nextcloud_pwd'] = record.nextcloud_pwd
- temp['webmail'] = record.webmail
- temp['sms'] = record.sms
- temp['sendafile'] = record.sendafile
- temp['tobedeleted'] = record.tobedeleted
- temp['mail_quota'] = record.mail_quota
- temp['accountdatecreation'] = record.account_date_creation
- temp['accountdatedisabled'] = record.account_date_disabled
- temp['sms_communication'] = record.sms_communication
- temp['nota'] = record.nota
- temp['last_mail_checked'] = record.last_mail_checked
- temp['proxy_host'] = record.proxy_host
- #temp['bigmail'] = record.bigmail
- temp['mail_di_recupero'] = record.mail_di_recupero
- temp['warning_mail_quota'] = record.warning_mail_quota
- temp['limit_mail_quota'] = record.limit_mail_quota
- temp['password_change_enabled'] = record.password_change_enabled
- temp['passwordchanged'] = False
- temp['forward'] = record.forward
-
- formemail = formEmail(temp)
- formemail.update()
- value['formemail'] = formemail
- return render(request,'Utente.Edit.html',value)
- def UserInfo(request):
- session = getSessionParms(request)
- userauth = session['_userauth_']
- domain2edit = session['_domain2edit_']
- # da qui carica i dati dal db.
- 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
- value=dict()
- value['utenteautorizzato']=utenteautorizzato
- print(utenteautorizzato.nome)
- print("livello autorizzazione",utenteautorizzato.securitylevel_id)
- securitylevel = getSecurityLevel(utenteautorizzato.securitylevel_id)
- securityrow = getSecurityRow(utenteautorizzato.securitylevel_id)
- value['securitylevel'] = getSecurityLevel(utenteautorizzato.securitylevel_id)
- value['securityrow'] = securityrow
- value['securitylist'] = getSecurityList(securityrow)
- for i in securityrow: print("-{}-".format(i.securityoptions.id))
- value['securityparms'] = {'utente':utenteautorizzato.id,'dominio':utenteautorizzato.domain.id }
- value['securityrowLen'] = len(securityrow)
- value['navbar']=True
- ### recupero informazioni utente:
- listautenti = User.objects.filter(domain_id = domain2edit)
- size=0
- for i in listautenti:
- size = size + i.mail_quota
- value['dominio_mail_quota'] = size
- nota={'data':datetime.now().strftime('%m/%d%Y %H:%M:%S')}
- registra(utenteautorizzato,5,nota)
- return render(request,'Utente.Info.html',value)
- def UserReadOnlyList(request):
- session = getSessionParms(request)
- userauth = session['_userauth_']
- user2edit = session['_user2edit_']
- domain2edit = session['_domain2edit_']
- request.session['_from_']="Utenti:UserList"
- print(next)
- if not user2edit:
- user2edit = userauth
- 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)
- userlist = User.objects.filter(domain=domain2edit).order_by('mail')
- value={}
- value['utenteautorizzato'] = utenteautorizzato
- value['userlist'] = userlist
- value['dominio'] = dominio
- 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
- return render(request,'Utente.ReadOnlyList.html',value)
|