123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477 |
- from django.shortcuts import render
- from django.http import HttpResponse
- from django.template import loader
- from django.shortcuts import redirect
- from django.conf import settings
- from django.urls import reverse
- import vyos
- from performance import timer
- from perms import is_authenticated
- import perms
- @is_authenticated
- def index(request):
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall_by_group(request)
- hostname_default = vyos.get_hostname_prefered(request)
- is_superuser = perms.get_is_superuser(request.user)
- firewall_all = vyos.get_firewall_all(hostname_default)
- if firewall_all == False:
- return redirect('firewall:firewall-create')
- for xitem in firewall_all['name']:
- if 'default-action' in firewall_all['name'][xitem]:
- firewall_all['name'][xitem]['default_action'] = firewall_all['name'][xitem]['default-action']
- del firewall_all['name'][xitem]['default-action']
- template = loader.get_template('firewall/list.html')
- context = {
- #'interfaces': interfaces,
- 'instances': all_instances,
- 'hostname_default': hostname_default,
- 'firewall_all': firewall_all,
- 'username': request.user,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def create(request):
-
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- is_superuser = perms.get_is_superuser(request.user)
- if 'name' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", request.POST['name']]}
- result1 = vyos.set_config(hostname_default, cmd)
- print(result1)
- if 'description' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", request.POST['name'], "description", request.POST['description']]}
- result2 = vyos.set_config(hostname_default, cmd)
- print(result2)
- if 'action' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", request.POST['name'], "default-action", request.POST['action']]}
- result3 = vyos.set_config(hostname_default, cmd)
- print(result3)
- return redirect('firewall:firewall-list')
- template = loader.get_template('firewall/create.html')
- context = {
- #'interfaces': interfaces,
- 'instances': all_instances,
- 'hostname_default': hostname_default,
- 'username': request.user,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def addrule(request, firewall_name):
-
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- is_superuser = perms.get_is_superuser(request.user)
- firewall = vyos.get_firewall(hostname_default, firewall_name)
-
- changed = False
- if 'action' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", request.POST['rulenumber'], "action", request.POST['action']]}
- result1 = vyos.set_config(hostname_default, cmd)
- print(result1)
- changed = True
- if 'protocol' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", request.POST['rulenumber'], "protocol", request.POST['protocol']]}
- result2 = vyos.set_config(hostname_default, cmd)
- print(result2)
- changed = True
- if 'destinationport' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", request.POST['rulenumber'], "destination", "port", request.POST['destinationport']]}
- result3 = vyos.set_config(hostname_default, cmd)
- print(result3)
- changed = True
- if 'sourceport' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", request.POST['rulenumber'], "source", "port", request.POST['sourceport']]}
- result3 = vyos.set_config(hostname_default, cmd)
- print(result3)
- changed = True
- if changed == True:
- return redirect('firewall:show', firewall_name)
-
- template = loader.get_template('firewall/addrule.html')
- context = {
- #'interfaces': interfaces,
- 'instances': all_instances,
- 'hostname_default': hostname_default,
- 'firewall': firewall,
- 'firewall_name': firewall_name,
- 'username': request.user,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_removerule(request, firewall_name, firewall_rulenumber):
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- firewall = vyos.get_firewall(hostname_default, firewall_name)
- firewall_rule = vyos.get_firewall_rule(hostname_default, firewall_name, firewall_rulenumber)
- if firewall_rule and firewall:
- vyos.delete_route_rule(hostname_default, firewall_name, firewall_rulenumber)
- return redirect('firewall:show', firewall_name)
- @is_authenticated
- def editrule(request, firewall_name, firewall_rulenumber):
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- is_superuser = perms.get_is_superuser(request.user)
- firewall = vyos.get_firewall(hostname_default, firewall_name)
- firewall_rule = vyos.get_firewall_rule(hostname_default, firewall_name, firewall_rulenumber)
- changed = False
- if 'action' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", firewall_rulenumber, "action", request.POST['action']]}
- result1 = vyos.set_config(hostname_default, cmd)
- print(result1)
- changed = True
- if 'protocol' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", firewall_rulenumber, "protocol", request.POST['protocol']]}
- result2 = vyos.set_config(hostname_default, cmd)
- print(result2)
- changed = True
- if 'destinationport' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", firewall_rulenumber, "destination", "port", request.POST['destinationport']]}
- result3 = vyos.set_config(hostname_default, cmd)
- print(result3)
- changed = True
- if 'sourceport' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "rule", firewall_rulenumber, "source", "port", request.POST['sourceport']]}
- result3 = vyos.set_config(hostname_default, cmd)
- print(result3)
- changed = True
- if changed == True:
- return redirect('firewall:firewall-list')
- template = loader.get_template('firewall/editrule.html')
- context = {
- #'interfaces': interfaces,
- 'instances': all_instances,
- 'hostname_default': hostname_default,
- 'firewall': firewall,
- 'firewall_name': firewall_name,
- 'firewall_rule': firewall_rule,
- 'firewall_rulenumber' : firewall_rulenumber,
- 'username': request.user,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def show(request, firewall_name):
-
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- is_superuser = perms.get_is_superuser(request.user)
- firewall = vyos.get_firewall(hostname_default, firewall_name)
-
- template = loader.get_template('firewall/show.html')
- context = {
- #'interfaces': interfaces,
- 'instances': all_instances,
- 'hostname_default': hostname_default,
- 'firewall': firewall,
- 'firewall_name': firewall_name,
- 'username': request.user,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_networkgroup_list(request):
-
- hostname_default = vyos.get_hostname_prefered(request)
- firewall_networkgroup = vyos.get_firewall_networkgroup(hostname_default)
- all_instances = vyos.instance_getall_by_group(request)
- is_superuser = perms.get_is_superuser(request.user)
- template = loader.get_template('firewall/networkgroup-list.html')
- context = {
- 'firewall_networkgroup': firewall_networkgroup,
- 'hostname_default': hostname_default,
- 'username': request.user,
- 'instances': all_instances,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_networkgroup_add(request):
- hostname_default = vyos.get_hostname_prefered(request)
- all_instances = vyos.instance_getall_by_group(request)
- is_superuser = perms.get_is_superuser(request.user)
- if request.POST.get('name', None) != None and request.POST.get('network', None) != None:
- vyos.set_firewall_networkgroup_add(hostname_default, request.POST.get('name'), request.POST.get('network'))
- if request.POST.get('description', None) != None:
- vyos.set_firewall_networkgroup_description(hostname_default, request.POST.get('name'), request.POST.get('description'))
- return redirect('firewall:firewall-networkgroup-list')
- template = loader.get_template('firewall/networkgroup-add.html')
- context = {
- 'hostname_default': hostname_default,
- 'username': request.user,
- 'instances': all_instances,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_networkgroup_del(request, groupname):
- hostname_default = vyos.get_hostname_prefered(request)
- vyos.set_firewall_networkgroup_del(hostname_default, groupname)
- return redirect('firewall:firewall-networkgroup-list')
- @is_authenticated
- def firewall_addressgroup_list(request):
-
- hostname_default = vyos.get_hostname_prefered(request)
- firewall_addressgroup = vyos.get_firewall_addressgroup(hostname_default)
- all_instances = vyos.instance_getall_by_group(request)
- is_superuser = perms.get_is_superuser(request.user)
- template = loader.get_template('firewall/addressgroup-list.html')
- context = {
- 'firewall_addressgroup': firewall_addressgroup,
- 'hostname_default': hostname_default,
- 'username': request.user,
- 'instances': all_instances,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_addressgroup_add(request):
-
- hostname_default = vyos.get_hostname_prefered(request)
- all_instances = vyos.instance_getall_by_group(request)
- is_superuser = perms.get_is_superuser(request.user)
- if request.POST.get('addresstype', None) == "single" and request.POST.get('name', None) != None and request.POST.get('address', None) != None:
- vyos.set_firewall_addressgroup_add(hostname_default, request.POST.get('name'), request.POST.get('address'))
- if request.POST.get('description', None) != None:
- vyos.set_firewall_addressgroup_description(hostname_default, request.POST.get('name'), request.POST.get('description'))
- return redirect('firewall:firewall-addressgroup-list')
- elif request.POST.get('addresstype', None) == "range" and request.POST.get('name', None) != None and request.POST.get('address-start', None) != None and request.POST.get('address-end', None) != None:
- vyos.set_firewall_addressgroup_rangeadd(hostname_default, request.POST.get('name'), request.POST.get('address-start'), request.POST.get('address-end'))
- if request.POST.get('description', None) != None:
- vyos.set_firewall_addressgroup_description(hostname_default, request.POST.get('name'), request.POST.get('description'))
- return redirect('firewall:firewall-addressgroup-list')
- template = loader.get_template('firewall/addressgroup-add.html')
- context = {
- 'hostname_default': hostname_default,
- 'username': request.user,
- 'instances': all_instances,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_addressgroup_del(request, groupname):
- hostname_default = vyos.get_hostname_prefered(request)
- vyos.set_firewall_addressgroup_del(hostname_default, groupname)
- return redirect('firewall:firewall-addressgroup-list')
- @is_authenticated
- def firewall_addressgroup_desc(request, groupname):
- hostname_default = vyos.get_hostname_prefered(request)
- firewall_addressgroup = vyos.get_firewall_addressgroup_one(hostname_default, groupname)
- all_instances = vyos.instance_getall_by_group(request)
- is_superuser = perms.get_is_superuser(request.user)
- if request.POST.get('description', None) != None:
- vyos.set_firewall_addressgroup_description(hostname_default, groupname, request.POST.get('description'))
- return redirect('firewall:firewall-addressgroup-list')
- template = loader.get_template('firewall/addressgroup-desc.html')
- context = {
- 'firewall_addressgroup': firewall_addressgroup,
- 'hostname_default': hostname_default,
- 'username': request.user,
- 'instances': all_instances,
- 'is_superuser' : is_superuser,
- 'groupname': groupname,
- }
- return HttpResponse(template.render(context, request))
-
- @is_authenticated
- def firewall_networkgroup_desc(request, groupname):
- hostname_default = vyos.get_hostname_prefered(request)
- firewall_networkgroup = vyos.get_firewall_networkgroup_one(hostname_default, groupname)
- all_instances = vyos.instance_getall_by_group(request)
- is_superuser = perms.get_is_superuser(request.user)
- if request.POST.get('description', None) != None:
- vyos.set_firewall_networkgroup_description(hostname_default, groupname, request.POST.get('description'))
- return redirect('firewall:firewall-networkgroup-list')
- template = loader.get_template('firewall/networkgroup-desc.html')
- context = {
- 'firewall_networkgroup': firewall_networkgroup,
- 'hostname_default': hostname_default,
- 'username': request.user,
- 'instances': all_instances,
- 'is_superuser' : is_superuser,
- 'groupname': groupname,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_config(request, firewall_name):
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- is_superuser = perms.get_is_superuser(request.user)
-
- firewall = vyos.get_firewall(hostname_default, firewall_name)
-
- template = loader.get_template('firewall/show.html')
- context = {
- #'interfaces': interfaces,
- 'instances': all_instances,
- 'hostname_default': hostname_default,
- 'firewall': firewall,
- 'firewall_name': firewall_name,
- 'username': request.user,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
- @is_authenticated
- def firewall_global(request):
-
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- if int(request.POST.get('allping', 0)) == 1:
- vyos.set_firewall_allping_enable(hostname_default)
- else:
- vyos.set_firewall_allping_disable(hostname_default)
- if int(request.POST.get('syncookies', 0)) == 1:
- vyos.set_firewall_syncookies_enable(hostname_default)
- else:
- vyos.set_firewall_syncookies_disable(hostname_default)
-
- return redirect('firewall:firewall-list')
- @is_authenticated
- def firewall_remove(request, firewall_name):
-
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- firewall = vyos.delete_firewall(hostname_default, firewall_name)
-
- return redirect('firewall:firewall-list')
- @is_authenticated
- def firewall_edit(request, firewall_name):
-
- #interfaces = vyos.get_interfaces()
- all_instances = vyos.instance_getall()
- hostname_default = vyos.get_hostname_prefered(request)
- firewall = vyos.get_firewall(hostname_default, firewall_name)
- firewall['defaultaction'] = firewall['default-action']
- is_superuser = perms.get_is_superuser(request.user)
- changed = False
- if 'description' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "description", request.POST['description']]}
- result2 = vyos.set_config(hostname_default, cmd)
- print(result2)
- changed = True
- if 'action' in request.POST:
- cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "default-action", request.POST['action']]}
- result3 = vyos.set_config(hostname_default, cmd)
- print(result3)
- changed = True
- if changed == True:
- return redirect('firewall:firewall-list')
- template = loader.get_template('firewall/edit.html')
- context = {
- #'interfaces': interfaces,
- 'instances': all_instances,
- 'hostname_default': hostname_default,
- 'firewall_name': firewall_name,
- 'firewall': firewall,
- 'username': request.user,
- 'is_superuser' : is_superuser,
- }
- return HttpResponse(template.render(context, request))
|