views.py 9.5 KB

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