views.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from django.shortcuts import render
  2. from django.http import HttpResponse
  3. from django.template import loader
  4. from django.shortcuts import redirect
  5. from django.conf import settings
  6. from django.urls import reverse
  7. from django.contrib.auth.decorators import login_required
  8. import vyos
  9. import vycontrol_vyos_api as vapi
  10. import vycontrol_messages as vmsg
  11. import perms
  12. import validators
  13. @login_required
  14. def index(request):
  15. all_instances = vyos.instance_getall()
  16. hostname_default = vyos.get_hostname_prefered(request)
  17. is_superuser = perms.get_is_superuser(request.user)
  18. dnsresolver_srv = vapi.get_dnsresolver(hostname_default)
  19. dnsresolver_servers = {}
  20. if dnsresolver_srv.success:
  21. if dnsresolver_srv.data['name-server'] != None:
  22. dnsresolver_servers = dnsresolver_srv.data['name-server']
  23. context = {
  24. 'instances': all_instances,
  25. 'hostname_default': hostname_default,
  26. 'dnsresolver_servers' : dnsresolver_servers,
  27. 'is_superuser' : is_superuser,
  28. }
  29. return render(request, 'dnsresolver/list.html', context)
  30. @login_required
  31. def add(request):
  32. msg = vmsg.msg()
  33. all_instances = vyos.instance_getall()
  34. hostname_default = vyos.get_hostname_prefered(request)
  35. is_superuser = perms.get_is_superuser(request.user)
  36. if 'server' in request.POST:
  37. if validators.ipv6(request.POST['server'].strip()) or validators.ipv4(request.POST['server'].strip()):
  38. v = vapi.set_dnsresolver(hostname_default, request.POST['server'].strip())
  39. if v.success == False:
  40. msg.add_error("dnsresolver server add fail - " + v.reason)
  41. else:
  42. msg.add_success("dnsresolver server added")
  43. else:
  44. msg.add_error("dnsresolver server add fail - insert only IPv4 or IPv6")
  45. context = {
  46. 'instances': all_instances,
  47. 'hostname_default': hostname_default,
  48. 'is_superuser' : is_superuser,
  49. 'msg' : msg.get_all(),
  50. }
  51. return render(request, 'dnsresolver/add.html', context)
  52. @login_required
  53. def remove(request, server):
  54. hostname_default = vyos.get_hostname_prefered(request)
  55. dnsresolver_srv = vapi.get_dnsresolver(hostname_default)
  56. if len(dnsresolver_srv.data['name-server']) == 0:
  57. return redirect('dnsresolver:dnsresolver-list')
  58. if dnsresolver_srv.success:
  59. if 'name-server' in dnsresolver_srv.data:
  60. if validators.ipv6(server.strip()) or validators.ipv4(server.strip()):
  61. v = vapi.delete_dnsresolver(hostname_default, server.strip())
  62. return redirect('dnsresolver:dnsresolver-list')