views.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. from django.shortcuts import render
  2. # Create your views here.
  3. from django.shortcuts import render
  4. from .models import *
  5. from att.views import *
  6. from config.views import *
  7. # riporta tutti i permessi mixando i tre livelli
  8. def getP(azienda=None,sede=None,amministratore=None):
  9. if isinstance(jolly,Azienda):
  10. pass
  11. # riporta l'elenco dei permessi per amministratore
  12. def getAMP(amministratore=None):
  13. amm=None
  14. print('getAMP',amministratore)
  15. if isinstance(amministratore,Amministratore):
  16. print('si tratta di una istanza, quindi possiamo direttamente accedere')
  17. amm = amministratore
  18. if isinstance(amministratore,int):
  19. print('si tratta di un int, quindi dobbiamo cercare il valore')
  20. amm = Amministratore.objects.get(pk=amministratore)
  21. permessi = list()
  22. for p in amm.amp_set.all():
  23. permessi.append(p.permesso.nome)
  24. print('permessi disponibili',len(permessi))
  25. #for i in permessi: print(i,)
  26. return permessi
  27. #riporta l'elenco dei permessi per azienda, filtrato per amministratore
  28. def getAZP(azienda=None,amministratore=None):
  29. azi = None
  30. if isinstance(azienda,Azienda):
  31. print('si tratta di una istanza azienda')
  32. azi=azienda
  33. if isinstance(azienda,int):
  34. print('azienda: istanza int')
  35. azi = Azienda.objects.get(pk=azienda)
  36. amm=None
  37. print('getAMP',amministratore)
  38. if isinstance(amministratore,Amministratore):
  39. print('si tratta di una istanza, quindi possiamo direttamente accedere')
  40. amm = amministratore
  41. if isinstance(amministratore,int):
  42. print('si tratta di un int, quindi dobbiamo cercare il valore')
  43. amm = Amministratore.objects.get(pk=amministratore)
  44. if not amm:
  45. return []
  46. if not azi:
  47. return []
  48. permessi = list()
  49. for p in azi.azp_set.all().filter(amministratore=amm):
  50. permessi.append(p.permesso.nome)
  51. print('permessi disponibili',len(permessi))
  52. #for i in permessi: print(i,)
  53. return permessi
  54. #riporta la lista delle aziende in base all'amministratore
  55. def listaAZP(amministratore=None):
  56. print('Parametro amministratore',amministratore,type(amministratore))
  57. amm = None
  58. if isinstance(amministratore,Amministratore):
  59. print('amministratore: instanza Amministratore')
  60. amm=amministratore
  61. if isinstance(amministratore,int):
  62. print('amministratore: istanza int')
  63. amm = Amministratore.objects.get(pk=amministratore)
  64. if amm == None:
  65. print('problema con la definizione di amministratore')
  66. return []
  67. print('dati rilevati',amm.id,amm.login)
  68. lam = amm.azp_set.filter(permesso__nome="AMMINISTRATORE")
  69. print('lunghezza LAM',lam)
  70. aziende = list()
  71. oggetto = list()
  72. for p in lam:
  73. aziende.append(p.azienda)
  74. oggetto.append(p)
  75. print('aziende disponibili',len(aziende))
  76. return (aziende,oggetto)
  77. #riporta l'elenco dei permessi per sede filtrato per amministratore
  78. def getSEP(sede=None,amministratore=None):
  79. sed=None
  80. amm=None
  81. print('getSEP',sede,amministratore)
  82. if isinstance(sede,Sede):
  83. print('si tratta di una istanza dede')
  84. sed=sede
  85. if isinstance(sede,int):
  86. print('sede: istanza int')
  87. sed = Sede.objects.get(pk=sede)
  88. if isinstance(amministratore,Amministratore):
  89. print('si tratta di una istanza amministratore, quindi possiamo direttamente accedere')
  90. amm = amministratore
  91. if isinstance(amministratore,int):
  92. print('si tratta di un int, quindi dobbiamo cercare il valore')
  93. amm = Amministratore.objects.get(pk=amministratore)
  94. if not sed:
  95. return []
  96. permessi = list()
  97. for p in sed.sep_set.all().filter(amministratore=amm):
  98. permessi.append(p.permesso.nome)
  99. print('permessi disponibili',len(permessi))
  100. #for i in permessi: print(i,)
  101. return permessi
  102. # riporta un permesso (generico) o tutti i permessi
  103. def getPermesso(permesso=None):
  104. if permesso:
  105. try:
  106. p = Permesso.objects.get(nome=permesso)
  107. except Permesso.DoesNotExist as dne:
  108. p = None
  109. print("Errore:",dne)
  110. else:
  111. p = Permesso.objects.all()
  112. return p
  113. # da questa parte si impostano i permessi
  114. def setAMP(amministratore=None,permesso=None):
  115. pass
  116. def setAZP(azienda=None,amministratore=None,permesso=None):
  117. pass
  118. def setSEP(sede=None,amministratore=None,permesso=None):
  119. pass