views.py 9.5 KB

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