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,]