瀏覽代碼

dopo la segnalazione di Ale, ho notato che non venivano correttamente
assegnati i valori di sicurezza adeguati, c'erano errori e anomalie
varie.
ho rivisto svariati moduli.
importante: un oggetto derivato da un modello non e' la stessa cosa di
un oggetto derivato da una query. prima di usarlo va verificato se e'
vuoto o meno.
ho temporaneamente risolto verificato il tipo di oggetto dell'id.

mauro 9 月之前
父節點
當前提交
895b369c6b
共有 3 個文件被更改,包括 83 次插入40 次删除
  1. 54 28
      azienda/views.py
  2. 16 7
      sicurezza/views.py
  3. 13 5
      utente/views.py

+ 54 - 28
azienda/views.py

@@ -41,6 +41,7 @@ def welcome(request):
  
   ### permessi inizio ###
   data['permesso'] = getAMP(admin)[0]
+
   if 'AziendaId' in data:
     for t in getAZP(data['AziendaId'],admin):
       if t not in data['permesso']:
@@ -254,9 +255,10 @@ def editAzienda(request):
   for t in getAZP(azienda,admin):
     if t not in data['permesso']:
       data['permesso'].append(t)
-  for t in getSEP(data['sede'],admin):
-    if t not in data['permesso']:
-      data['permesso'].append(t)
+  if 'sede' in data:
+    for t in getSEP(data['sede'],admin):
+      if t not in data['permesso']:
+        data['permesso'].append(t)
   print('permessi:',data['permesso'])
   #### permessi ####
 
@@ -270,8 +272,7 @@ def editAzienda(request):
       print('premuto tasto "AggiornaAziendaButton"')
       nuovaazienda = formAzienda(request.POST)
       if nuovaazienda.is_valid():
-        print("il form e' valido",request.POST)
-
+        print("il form AggiornaAziendaButton' valido",request.POST)
 
         azienda.nome = nuovaazienda.cleaned_data.get('nome')
         azienda.mail = nuovaazienda.cleaned_data.get('mail')
@@ -283,20 +284,33 @@ def editAzienda(request):
         
         request.session['AziendaIdEdit'] = azienda.id
         print('azienda:',azienda.id)
-        
+
+        request.session['AziendaId'] = azienda.id
+        data['azienda'] = azienda
+       
         ### nel caso l'azienda non esista, si aggiungono i permessi di base
-        if not azienda:
-          setAZP(azienda,data['admin'],"AZIENDA")
-          if 'AZIENDA.CREA' in getAMP(data['admin'])[0]:
-            setAZP(azienda,data['admin'],"AZIENDA.CREA")
-          if 'AZIENDA.EDIT' in getAMP(data['admin'])[0]:
-            setAZP(azienda,data['admin'],"AZIENDA.EDIT")
-          if 'UTENTE' in getAMP(data['admin'])[0]:
-            setAZP(azienda,data['admin'],"UTENTE")
-          if 'UTENTE.CREA' in getAMP(data['admin'])[0]:
-            setAZP(azienda,data['admin'],"UTENTE.CREA")
+        print("data['admin']",data['admin'])
+        if 'AZIENDA' in getAMP(data['admin'])[0]:
+            print('getAMP: Azienda')
+            setAZP(azienda,data['admin'],"AZIENDA")
+        if 'AZIENDA.CREA' in getAMP(data['admin'])[0]:
+          print('getAMP: AZIENDA.CREA')
+          setAZP(azienda,data['admin'],"AZIENDA.CREA")
+        if 'AZIENDA.EDIT' in getAMP(data['admin'])[0]:
+          print('getAMP: AZIENDA.EDIT')
+          setAZP(azienda,data['admin'],"AZIENDA.EDIT")
+        if 'UTENTE' in getAMP(data['admin'])[0]:
+          print('getAMP:  UTENTE')
+          setAZP(azienda,data['admin'],"UTENTE")
+        if 'UTENTE.CREA' in getAMP(data['admin'])[0]:
+          print('getAMP:  UTENTE.CREA')
+          setAZP(azienda,data['admin'],"UTENTE.CREA")
+        if 'UTENTE.EDIT' in getAMP(data['admin'])[0]:
+          print('getAMP:  UTENTE.EDIT')
+          setAZP(azienda,data['admin'],"UTENTE.EDIT")
       else:
         data['aziendaForm'] = formAzienda(request.POST)
+        print("il form 'AggiornaAziendaButton' non è valido")
 
     if 'CancellaAziendaPermessiButton' in request.POST:
       print('premuto "CancellaAziendaPermessiButton"')
@@ -440,18 +454,30 @@ def editSede(request):
         print('sede:',sede.id)
         print('azienda',sede.nome)
 
-        if not sede:
-          # nel caso la sede non esista, vediamo di crearla
-          if 'SedeIdEdit' not in request.session:
-            setSEP(sede,data['admin'],"SEDE")
-          if 'SEDE.CREA' in getAMP(data['admin'])[0]:
-            setSEP(sede,data['admin'],"SEDE.CREA")
-          if 'SEDE.EDIT' in getAMP(data['admin'])[0]:
-            setSEP(sede,data['admin'],"SEDE.EDIT")
-          if 'UTENTE' in getAMP(data['admin'])[0]:
-            setSEP(sede,data['admin'],"UTENTE")
-          if 'UTENTE.CREA' in getAMP(data['admin'])[0]:
-            setSEP(sede,data['admin'],"UTENTE.CREA")
+        request.session['SedeId'] = sede.id
+        data['sede'] = sede
+
+        # nel caso la sede non esista, vediamo di crearla
+        print("data['admin']",data['admin'])
+        if 'SEDE' in getAMP(data['admin'])[0]:
+          print('getAMP: SEDE')
+          setSEP(sede,data['admin'],"SEDE")
+        if 'SEDE.CREA' in getAMP(data['admin'])[0]:
+          print('getAMP: SEDE.CREA')
+          setSEP(sede,data['admin'],"SEDE.CREA")
+        if 'SEDE.EDIT' in getAMP(data['admin'])[0]:
+          print('getAMP: SEDE.EDIT')
+          setSEP(sede,data['admin'],"SEDE.EDIT")
+        if 'UTENTE' in getAMP(data['admin'])[0]:
+          print('getAMP: UTENTE')
+          setSEP(sede,data['admin'],"UTENTE")
+        if 'UTENTE.CREA' in getAMP(data['admin'])[0]:
+          print('getAMP: UTENTE.CREA')
+          setSEP(sede,data['admin'],"UTENTE.CREA")
+        if 'UTENTE.EDIT' in getAMP(data['admin'])[0]:
+          print('getAMP: UTENTE.EDIT')
+          setSEP(sede,data['admin'],"UTENTE.EDIT")
+
       else:
         data['sedeForm'] = formSede(request.POST)
       

+ 16 - 7
sicurezza/views.py

@@ -38,31 +38,41 @@ def getAMP(amministratore=None):
 
 #riporta l'elenco dei permessi per azienda, filtrato per amministratore
 def getAZP(azienda=None,amministratore=None):
+  print('getAZP',azienda,amministratore)
+
   azi = None
   if isinstance(azienda,Azienda):
     print('azienda: azienda')
     azi=azienda
-  if isinstance(azienda,int):
+    print(azi.id)
+    if not azi.id:
+      azi=None
+
+  elif isinstance(azienda,int):
     print('azienda: int')
     azi = Azienda.objects.get(pk=azienda)
+  else:
+    azi = None
 
   amm=None
-  print('amministratore',amministratore)
   if isinstance(amministratore,Amministratore):
     print('amministratore: amministratore')
     amm = amministratore
-  if isinstance(amministratore,int):
+  elif isinstance(amministratore,int):
     print('amministratore: int')
     amm = Amministratore.objects.get(pk=amministratore)
+  else:
+    amm = None
 
   if not amm:
-    return []
+    return ([],[],[],)
   if not azi:
-    return []
+    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)
@@ -131,7 +141,6 @@ def listaAMMperAzienda(azienda=None,permesso=None):
     t = azi.azp_set.filter(permesso__nome=per_nome)
     for tmp in t:
      laz.append(tmp)
-  print('lunghezza LAZ parametro indicato',laz)
 
   amministratore = list()
   oggetto = list()
@@ -213,7 +222,7 @@ def listaAZP(amministratore=None):
   print('dati rilevati',amm.id,amm.login)
 
   lam = amm.azp_set.filter(permesso__nome="AZIENDA")
-  print('lunghezza LAM',lam)
+  print('lunghezza LAM',len(lam))
 
   aziende = list()
   oggetto = list()

+ 13 - 5
utente/views.py

@@ -20,7 +20,7 @@ from io import StringIO
 
 def OrdinaUtenti(rq=None,ou=None):
   tmp=None
-
+  print("len(ou)",len(ou))
   if rq.method == "POST" and 'utUP' in rq.POST:
     print('utUP')
     rq.session['docOrder'] = 'utUP'
@@ -28,8 +28,7 @@ def OrdinaUtenti(rq=None,ou=None):
   if rq.method == "POST" and 'utDW' in rq.POST:
     print('utDW')
     rq.session['docOrder'] = 'utDW'
-  print(type(ou[0]))
-  print(ou[0].nome)
+
   if 'docOrder' in rq.session and 'utDW' in rq.session.get('docOrder'):
     tmp = sorted(ou, key = lambda x: x.nome,reverse=False)
     print(len(tmp))
@@ -49,6 +48,8 @@ def OrdinaUtenti(rq=None,ou=None):
   if 'docOrder' in rq.session and 'seUP' in rq.session.get('docOrder'):
     tmp = sorted(ou, key = lambda x: x.sede.nome,reverse=True)
 
+  if not tmp:
+    return ou
   return tmp    
 
  
@@ -83,11 +84,16 @@ def welcome(request):
   else:
     data['sede'] = None
 
+  print(data)
+
   if 'UserId' in request.session:
     data['UserId'] = request.session['UserId']
 
   data['utenti'] = OrdinaUtenti(request,data['utenti'])
-  data['numeroRecordAttuali'] = len(data['utenti'])
+  try:
+    data['numeroRecordAttuali'] = len(data['utenti'])
+  except TypeError as te:
+    data['numeroRecordAttuali'] = 0
 
   data['permesso'] = getAMP(admin)[0]
   for t in getAZP(data['AziendaId'],admin):
@@ -254,8 +260,9 @@ def edit(request):
 
     fu = formUtente(request.POST)
     if fu.is_valid():
-      print('form valida')
+      print('formUtente: form valida')
       cancellautente = fu.cleaned_data.get('cancellautente')
+
       if cancellautente:
         print('richiesta cancellazione utente, passo la chiamata')
         return HttpResponseRedirect(reverse("utente:cancellautente")) 
@@ -270,6 +277,7 @@ def edit(request):
       utente.cambiopassword = fu.cleaned_data['cambiopassword']
       utente.forzanuovapassword = fu.cleaned_data['forzanuovapassword']
       utente.otppassword = fu.cleaned_data['otppassword']
+
       tmp_sede = fu.cleaned_data['sede']
       print('tmp_sede',tmp_sede)
       try: