| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383 |
- from django.shortcuts import render
- # Create your views here.
- from django.shortcuts import render
- from .models import *
- from att.views import *
- from config.views import *
- # riporta tutti i permessi mixando i tre livelli
- def getP(azienda=None,sede=None,amministratore=None):
- if isinstance(jolly,Azienda):
- pass
- # riporta l'elenco dei permessi per amministratore
- def getAMP(amministratore=None):
- amm=None
- print('getAMP',amministratore)
- if isinstance(amministratore,Amministratore):
- print('si tratta di una istanza, quindi possiamo direttamente accedere')
- amm = amministratore
- if isinstance(amministratore,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- amm = Amministratore.objects.get(pk=amministratore)
- permessi = list()
- oggettoPermesso = list()
- oggettoAMM = list()
- for p in amm.amp_set.all():
- permessi.append(p.permesso.nome)
- oggettoPermesso.append(p.permesso)
- oggettoAMM.append(p)
- print('permessi disponibili',len(permessi))
- #for i in permessi: print(i,)
- return (permessi,oggettoPermesso,oggettoAMM)
- #riporta l'elenco dei permessi per azienda, filtrato per amministratore
- def getAZP(azienda=None,amministratore=None):
- azi = None
- if isinstance(azienda,Azienda):
- print('si tratta di una istanza azienda')
- azi=azienda
- if isinstance(azienda,int):
- print('azienda: istanza int')
- azi = Azienda.objects.get(pk=azienda)
- amm=None
- print('getAMP',amministratore)
- if isinstance(amministratore,Amministratore):
- print('si tratta di una istanza, quindi possiamo direttamente accedere')
- amm = amministratore
- if isinstance(amministratore,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- amm = Amministratore.objects.get(pk=amministratore)
- if not amm:
- return []
- if not azi:
- return []
- permessi = list()
- oggettoPermesso = list()
- oggettoAZP = list()
- for p in azi.azp_set.all().filter(amministratore=amm):
- permessi.append(p.permesso.nome)
- oggettoPermesso.append(p.permesso)
- oggettoAZP.append(p)
- print('permessi disponibili',len(permessi))
- #for i in permessi: print(i,)
- return (permessi,oggettoPermesso,oggettoAZP)
- '''
- # riporta l'elenco dei permessi per amministratore versione oggetto (adatta all'editing)
- def listaAMP(amministratore=None):
- amm=None
- print('listaAMP',amministratore)
- if isinstance(amministratore,Amministratore):
- print('si tratta di una istanza, quindi possiamo direttamente accedere')
- amm = amministratore
- if isinstance(amministratore,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- amm = Amministratore.objects.get(pk=amministratore)
- permessi = list()
- oggetto = list()
- for p in amm.amp_set.all():
- permessi.append(p.permesso)
- oggetto.append(p)
- print('permessi disponibili',len(permessi))
- #for i in permessi: print(i,)
- return (permessi,oggetto)
- '''
- #ottiene la lista degli amministratori per azienda
- def listaAMMperAzienda(azienda=None):
- print('Parametro azienda',azienda,type(azienda))
- azi = None
- if isinstance(azienda,Azienda):
- print('Azienda: instanza Azienda')
- azi = azienda
- if isinstance(azienda,int):
- print('Azienda: istanza int')
- azi = Azienda.objects.get(pk=azienda)
- if azi == None:
- print('problema con la definizione di azienda')
- return []
- print('dati rilevati',azi.id,azi.nome)
- laz = azi.azp_set.filter(permesso__nome="AMMINISTRATORE")
- print('lunghezza LAZ',laz)
- amministratore = list()
- oggetto = list()
- for p in laz:
- amministratore.append(p.amministratore)
- oggetto.append(p)
- print('amministratori disponibili',len(amministratore))
- return (amministratore,oggetto)
- #ottiene la lista degli amministratori per sede
- def listaAMMperSede(sede=None):
- print('Parametro sede',sede,type(sede))
- sed = None
- if isinstance(sede,Sede):
- print('Sede: instanza Sede')
- sed = Sede
- if isinstance(sede,int):
- print('Sede: istanza int')
- sed = Sede.objects.get(pk=sede)
- if sed == None:
- print('problema con la definizione di sede')
- return []
- print('dati rilevati',sed.id,sed.nome)
- lse = sed.sep_set.filter(permesso__nome="AMMINISTRATORE")
- print('lunghezza Lse',lse)
- amministratore = list()
- oggetto = list()
- for p in lse:
- amministratore.append(p.amministratore)
- oggetto.append(p)
- print('amministratori disponibili',len(amministratore))
- return (amministratore,oggetto)
- #riporta la lista delle aziende in base all'amministratore
- def listaAZP(amministratore=None):
- print('Parametro amministratore',amministratore,type(amministratore))
- amm = None
- if isinstance(amministratore,Amministratore):
- print('amministratore: instanza Amministratore')
- amm=amministratore
- if isinstance(amministratore,int):
- print('amministratore: istanza int')
- amm = Amministratore.objects.get(pk=amministratore)
- if amm == None:
- print('problema con la definizione di amministratore')
- return []
- print('dati rilevati',amm.id,amm.login)
- lam = amm.azp_set.filter(permesso__nome="AMMINISTRATORE")
- print('lunghezza LAM',lam)
- aziende = list()
- oggetto = list()
- for p in lam:
- aziende.append(p.azienda)
- oggetto.append(p)
- print('aziende disponibili',len(aziende))
- return (aziende,oggetto)
- # ritorna la lista delle sedi per azienda e amministratore
- def listaSEP(azienda=None,amministratore=None):
- print('Parametro azienda',azienda,type(azienda))
- azi = None
- if isinstance(azienda,Azienda):
- print('Azienda: instanza Azienda')
- azi = azienda
- if isinstance(azienda,int):
- print('Azienda: istanza int')
- azi = Azienda.objects.get(pk=azienda)
- print('Parametro amministratore',amministratore,type(amministratore))
- amm = None
- if isinstance(amministratore,Amministratore):
- print('amministratore: instanza Amministratore')
- amm = amministratore
- if isinstance(amministratore,int):
- print('amministratore: istanza int')
- amm = Amministratore.objects.get(pk=amministratore)
- print(amm,azi)
- if not amm:
- print('problema con la definizione di amministratore')
- return []
- if not azi:
- print('problema con la definizione di azienda')
- return []
- print('dati rilevati',amm.id,amm.login)
- lam = amm.sep_set.filter(amministratore=amm,permesso__nome="AMMINISTRATORE")
- print('lunghezza LAM',lam)
- sedi = list()
- oggetto = list()
- for p in lam:
- aziende.append(p.azienda)
- oggetto.append(p)
- print('aziende disponibili',len(aziende))
- return (aziende,oggetto)
- #riporta l'elenco dei permessi per sede filtrato per amministratore
- def getSEP(sede=None,amministratore=None):
- print('getSEP',sede,amministratore)
- sed=None
- if isinstance(sede,Sede):
- print('si tratta di una istanza dede')
- sed=sede
- if isinstance(sede,int):
- print('sede: istanza int')
- sed = Sede.objects.get(pk=sede)
- amm=None
- if isinstance(amministratore,Amministratore):
- print('si tratta di una istanza amministratore, quindi possiamo direttamente accedere')
- amm = amministratore
- if isinstance(amministratore,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- amm = Amministratore.objects.get(pk=amministratore)
- if not sed:
- return []
- permessi = list()
- for p in sed.sep_set.all().filter(amministratore=amm):
- permessi.append(p.permesso.nome)
- print('permessi disponibili',len(permessi))
- #for i in permessi: print(i,)
- return permessi
- # riporta un permesso (generico) o tutti i permessi
- def getPermesso(permesso=None):
- if permesso:
- try:
- p = Permesso.objects.get(nome=permesso)
- except Permesso.DoesNotExist as dne:
- p = None
- print("Errore:",dne)
- else:
- p = Permesso.objects.all()
- return p
- # da questa parte si impostano i permessi
- def setDefault(amministratore=None):
- pass
- def setAMP(amministratore=None,permesso=None):
- amm=None
- print('getAMP',amministratore)
- if isinstance(amministratore,Amministratore):
- print('si tratta di una istanza, quindi possiamo direttamente accedere')
- amm = amministratore
- if isinstance(amministratore,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- amm = Amministratore.objects.get(pk=amministratore)
- per=None
- print('getAMP',permesso)
- if isinstance(permesso,Permesso):
- print('si tratta di una istanza, possiamo passarla direttamente')
- per = permesso
- if isinstance(permesso,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- per = Permesso.objects.get(pk=permesso)
- if isinstance(permesso,str):
- print('si tratta di una str, quindi dobbiamo cercare il valore')
- per = Permesso.objects.get(nome=permesso)
- # aggiungiamo il permesso necessario
- p = AMP()
- p.permesso=per
- p.amministratore=amm
- p.save()
- return [p,]
- def setAZP(azienda=None,amministratore=None,permesso=None):
- azi = None
- if isinstance(azienda,Azienda):
- print('si tratta di una istanza azienda')
- azi=azienda
- if isinstance(azienda,int):
- print('azienda: istanza int')
- azi = Azienda.objects.get(pk=azienda)
- amm=None
- print('getAMP',amministratore)
- if isinstance(amministratore,Amministratore):
- print('si tratta di una istanza, quindi possiamo direttamente accedere')
- amm = amministratore
- if isinstance(amministratore,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- amm = Amministratore.objects.get(pk=amministratore)
- per=None
- print('getAMP',permesso)
- if isinstance(permesso,Permesso):
- print('si tratta di una istanza, possiamo passarla direttamente')
- per = permesso
- if isinstance(permesso,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- per = Permesso.objects.get(pk=permesso)
- if isinstance(permesso,str):
- print('si tratta di una str, quindi dobbiamo cercare il valore')
- per = Permesso.objects.get(nome=permesso)
- # aggiungiamo il permesso necessario
- p = AZP()
- p.permesso=per
- p.amministratore=amm
- p.azienda=azi
- p.save()
- return [p,]
- # set Permessi Sede
- def setSEP(sede=None,amministratore=None,permesso=None):
- sed=None
- if isinstance(sede,Sede):
- print('si tratta di una istanza dede')
- sed=sede
- if isinstance(sede,int):
- print('sede: istanza int')
- sed = Sede.objects.get(pk=sede)
- amm=None
- print('getAMP',amministratore)
- if isinstance(amministratore,Amministratore):
- print('si tratta di una istanza, quindi possiamo direttamente accedere')
- amm = amministratore
- if isinstance(amministratore,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- amm = Amministratore.objects.get(pk=amministratore)
- per=None
- print('getAMP',permesso)
- if isinstance(permesso,Permesso):
- print('si tratta di una istanza, possiamo passarla direttamente')
- per = permesso
- if isinstance(permesso,int):
- print('si tratta di un int, quindi dobbiamo cercare il valore')
- per = Permesso.objects.get(pk=permesso)
- if isinstance(permesso,str):
- print('si tratta di una str, quindi dobbiamo cercare il valore')
- per = Permesso.objects.get(nome=permesso)
- # aggiungiamo il permesso necessario
- p = SEP()
- p.permesso=per
- p.amministratore=amm
- p.sede=sed
- p.save()
- return [p,]
|