views.py 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  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. #ottiene la lista degli amministratori per azienda
  55. def listaAMMperAzienda(azienda=None):
  56. print('Parametro azienda',azienda,type(azienda))
  57. azi = None
  58. if isinstance(azienda,Azienda):
  59. print('Azienda: instanza Azienda')
  60. azi = azienda
  61. if isinstance(azienda,int):
  62. print('Azienda: istanza int')
  63. azi = Azienda.objects.get(pk=azienda)
  64. if azi == None:
  65. print('problema con la definizione di azienda')
  66. return []
  67. print('dati rilevati',azi.id,azi.nome)
  68. laz = azi.azp_set.filter(permesso__nome="AMMINISTRATORE")
  69. print('lunghezza LAZ',laz)
  70. amministratore = list()
  71. oggetto = list()
  72. for p in laz:
  73. amministratore.append(p.amministratore)
  74. oggetto.append(p)
  75. print('amministratori disponibili',len(amministratore))
  76. return (amministratore,oggetto)
  77. #ottiene la lista degli amministratori per sede
  78. def listaAMMperSede(sede=None):
  79. print('Parametro sede',sede,type(sede))
  80. sed = None
  81. if isinstance(sede,Sede):
  82. print('Sede: instanza Sede')
  83. sed = Sede
  84. if isinstance(sede,int):
  85. print('Sede: istanza int')
  86. sed = Sede.objects.get(pk=sede)
  87. if sed == None:
  88. print('problema con la definizione di sede')
  89. return []
  90. print('dati rilevati',sed.id,sed.nome)
  91. lse = sed.sep_set.filter(permesso__nome="AMMINISTRATORE")
  92. print('lunghezza Lse',lse)
  93. amministratore = list()
  94. oggetto = list()
  95. for p in lse:
  96. amministratore.append(p.amministratore)
  97. oggetto.append(p)
  98. print('amministratori disponibili',len(amministratore))
  99. return (amministratore,oggetto)
  100. #riporta la lista delle aziende in base all'amministratore
  101. def listaAZP(amministratore=None):
  102. print('Parametro amministratore',amministratore,type(amministratore))
  103. amm = None
  104. if isinstance(amministratore,Amministratore):
  105. print('amministratore: instanza Amministratore')
  106. amm=amministratore
  107. if isinstance(amministratore,int):
  108. print('amministratore: istanza int')
  109. amm = Amministratore.objects.get(pk=amministratore)
  110. if amm == None:
  111. print('problema con la definizione di amministratore')
  112. return []
  113. print('dati rilevati',amm.id,amm.login)
  114. lam = amm.azp_set.filter(permesso__nome="AMMINISTRATORE")
  115. print('lunghezza LAM',lam)
  116. aziende = list()
  117. oggetto = list()
  118. for p in lam:
  119. aziende.append(p.azienda)
  120. oggetto.append(p)
  121. print('aziende disponibili',len(aziende))
  122. return (aziende,oggetto)
  123. #riporta l'elenco dei permessi per sede filtrato per amministratore
  124. def getSEP(sede=None,amministratore=None):
  125. print('getSEP',sede,amministratore)
  126. sed=None
  127. if isinstance(sede,Sede):
  128. print('si tratta di una istanza dede')
  129. sed=sede
  130. if isinstance(sede,int):
  131. print('sede: istanza int')
  132. sed = Sede.objects.get(pk=sede)
  133. amm=None
  134. if isinstance(amministratore,Amministratore):
  135. print('si tratta di una istanza amministratore, quindi possiamo direttamente accedere')
  136. amm = amministratore
  137. if isinstance(amministratore,int):
  138. print('si tratta di un int, quindi dobbiamo cercare il valore')
  139. amm = Amministratore.objects.get(pk=amministratore)
  140. if not sed:
  141. return []
  142. permessi = list()
  143. for p in sed.sep_set.all().filter(amministratore=amm):
  144. permessi.append(p.permesso.nome)
  145. print('permessi disponibili',len(permessi))
  146. #for i in permessi: print(i,)
  147. return permessi
  148. # riporta un permesso (generico) o tutti i permessi
  149. def getPermesso(permesso=None):
  150. if permesso:
  151. try:
  152. p = Permesso.objects.get(nome=permesso)
  153. except Permesso.DoesNotExist as dne:
  154. p = None
  155. print("Errore:",dne)
  156. else:
  157. p = Permesso.objects.all()
  158. return p
  159. # da questa parte si impostano i permessi
  160. def setDefault(amministratore=None):
  161. pass
  162. def setAMP(amministratore=None,permesso=None):
  163. amm=None
  164. print('getAMP',amministratore)
  165. if isinstance(amministratore,Amministratore):
  166. print('si tratta di una istanza, quindi possiamo direttamente accedere')
  167. amm = amministratore
  168. if isinstance(amministratore,int):
  169. print('si tratta di un int, quindi dobbiamo cercare il valore')
  170. amm = Amministratore.objects.get(pk=amministratore)
  171. per=None
  172. print('getAMP',permesso)
  173. if isinstance(permesso,Permesso):
  174. print('si tratta di una istanza, possiamo passarla direttamente')
  175. per = permesso
  176. if isinstance(permesso,int):
  177. print('si tratta di un int, quindi dobbiamo cercare il valore')
  178. per = Permesso.objects.get(pk=permesso)
  179. if isinstance(permesso,str):
  180. print('si tratta di una str, quindi dobbiamo cercare il valore')
  181. per = Permesso.objects.get(nome=permesso)
  182. # aggiungiamo il permesso necessario
  183. p = AMP()
  184. p.permesso=per
  185. p.amministratore=amm
  186. p.save()
  187. return [p,]
  188. def setAZP(azienda=None,amministratore=None,permesso=None):
  189. azi = None
  190. if isinstance(azienda,Azienda):
  191. print('si tratta di una istanza azienda')
  192. azi=azienda
  193. if isinstance(azienda,int):
  194. print('azienda: istanza int')
  195. azi = Azienda.objects.get(pk=azienda)
  196. amm=None
  197. print('getAMP',amministratore)
  198. if isinstance(amministratore,Amministratore):
  199. print('si tratta di una istanza, quindi possiamo direttamente accedere')
  200. amm = amministratore
  201. if isinstance(amministratore,int):
  202. print('si tratta di un int, quindi dobbiamo cercare il valore')
  203. amm = Amministratore.objects.get(pk=amministratore)
  204. per=None
  205. print('getAMP',permesso)
  206. if isinstance(permesso,Permesso):
  207. print('si tratta di una istanza, possiamo passarla direttamente')
  208. per = permesso
  209. if isinstance(permesso,int):
  210. print('si tratta di un int, quindi dobbiamo cercare il valore')
  211. per = Permesso.objects.get(pk=permesso)
  212. if isinstance(permesso,str):
  213. print('si tratta di una str, quindi dobbiamo cercare il valore')
  214. per = Permesso.objects.get(nome=permesso)
  215. # aggiungiamo il permesso necessario
  216. p = AZP()
  217. p.permesso=per
  218. p.amministratore=amm
  219. p.azienda=azi
  220. p.save()
  221. return [p,]
  222. # set Permessi Sede
  223. def setSEP(sede=None,amministratore=None,permesso=None):
  224. sed=None
  225. if isinstance(sede,Sede):
  226. print('si tratta di una istanza dede')
  227. sed=sede
  228. if isinstance(sede,int):
  229. print('sede: istanza int')
  230. sed = Sede.objects.get(pk=sede)
  231. amm=None
  232. print('getAMP',amministratore)
  233. if isinstance(amministratore,Amministratore):
  234. print('si tratta di una istanza, quindi possiamo direttamente accedere')
  235. amm = amministratore
  236. if isinstance(amministratore,int):
  237. print('si tratta di un int, quindi dobbiamo cercare il valore')
  238. amm = Amministratore.objects.get(pk=amministratore)
  239. per=None
  240. print('getAMP',permesso)
  241. if isinstance(permesso,Permesso):
  242. print('si tratta di una istanza, possiamo passarla direttamente')
  243. per = permesso
  244. if isinstance(permesso,int):
  245. print('si tratta di un int, quindi dobbiamo cercare il valore')
  246. per = Permesso.objects.get(pk=permesso)
  247. if isinstance(permesso,str):
  248. print('si tratta di una str, quindi dobbiamo cercare il valore')
  249. per = Permesso.objects.get(nome=permesso)
  250. # aggiungiamo il permesso necessario
  251. p = SEP()
  252. p.permesso=per
  253. p.amministratore=amm
  254. p.sede=sed
  255. p.save()
  256. return [p,]