views.py 11 KB

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