|
@@ -2,61 +2,33 @@ from django.shortcuts import render
|
|
|
from django.http import HttpResponse
|
|
|
from django.template import loader
|
|
|
from django.shortcuts import redirect
|
|
|
+from django.shortcuts import render
|
|
|
+from django.contrib.auth import authenticate
|
|
|
+from django.views.generic.base import TemplateView
|
|
|
from django.conf import settings
|
|
|
from django.urls import reverse
|
|
|
-from django.contrib.auth.models import Group
|
|
|
-
|
|
|
-import pprint
|
|
|
-import vyos
|
|
|
-
|
|
|
-from .models import Instance
|
|
|
|
|
|
from django.contrib.auth.models import User
|
|
|
from django.contrib.auth.models import Group
|
|
|
+from config.models import Instance
|
|
|
|
|
|
-from django.template.defaultfilters import register
|
|
|
-
|
|
|
-
|
|
|
-from perms import is_authenticated
|
|
|
+import vyos
|
|
|
import perms
|
|
|
+import vapi
|
|
|
+import vmsg
|
|
|
+import viewinfo
|
|
|
+import validators
|
|
|
+from perms import is_authenticated
|
|
|
|
|
|
+from libs.vycontrol_validators import *
|
|
|
+from django.template.defaultfilters import register
|
|
|
from libs.vycontrol_filters import get_item
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-@is_authenticated
|
|
|
-def index(request):
|
|
|
-
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
-
|
|
|
- #interfaces = vyos.get_interfaces()
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
- for instance in all_instances:
|
|
|
- if group == None:
|
|
|
- all_instance[instance]['group'] = "admin"
|
|
|
-
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
-
|
|
|
-
|
|
|
- template = loader.get_template('config/instance.html')
|
|
|
- context = {
|
|
|
- #'interfaces': interfaces,
|
|
|
- 'instances': all_instances,
|
|
|
- 'hostname_default': hostname_default,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
- }
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
-
|
|
|
@perms.is_superuser
|
|
|
@is_authenticated
|
|
|
def users_list(request):
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
-
|
|
|
- #interfaces = vyos.get_interfaces()
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
users = User.objects.all()
|
|
|
groups = Group.objects.all()
|
|
|
|
|
@@ -65,21 +37,16 @@ def users_list(request):
|
|
|
if group.name != "admin":
|
|
|
group_show.append(group.name)
|
|
|
|
|
|
-
|
|
|
has_group_add = False
|
|
|
for el in request.POST:
|
|
|
-
|
|
|
-
|
|
|
if el.startswith('group-') and request.POST[el]:
|
|
|
pos = el.split("-", 1)
|
|
|
|
|
|
el_username = pos[1]
|
|
|
el_groupname = request.POST[el]
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
# test also if username is member of admin or superuser, than this one should not being no group
|
|
|
if el_groupname not in ['admin']:
|
|
|
-
|
|
|
try:
|
|
|
el_userid = User.objects.get(username=el_username)
|
|
|
except User.DoesNotExist:
|
|
@@ -92,8 +59,6 @@ def users_list(request):
|
|
|
except Group.DoesNotExist:
|
|
|
return redirect('config:users_list')
|
|
|
|
|
|
-
|
|
|
-
|
|
|
if el_groupname == "--remove--":
|
|
|
has_group_add = has_group_add + 1
|
|
|
else:
|
|
@@ -114,55 +79,40 @@ def users_list(request):
|
|
|
else:
|
|
|
user_groups[str(user)] = None
|
|
|
|
|
|
- template = loader.get_template('config/users_list.html')
|
|
|
- context = {
|
|
|
- #'interfaces': interfaces,
|
|
|
- 'instances': all_instances,
|
|
|
- 'hostname_default': hostname_default,
|
|
|
+ context = viewinfo.context(vinfo)
|
|
|
+ localcontext = {
|
|
|
'users' : users,
|
|
|
'groups': group_show,
|
|
|
'user_groups': user_groups,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
- }
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
+ }
|
|
|
+ context.update(localcontext)
|
|
|
+
|
|
|
+ return render(request, 'config/users_list.html', context)
|
|
|
+
|
|
|
|
|
|
@perms.is_superuser
|
|
|
@is_authenticated
|
|
|
def groups_list(request):
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
- #interfaces = vyos.get_interfaces()
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
groups = Group.objects.all()
|
|
|
|
|
|
-
|
|
|
- template = loader.get_template('config/groups_list.html')
|
|
|
- context = {
|
|
|
- #'interfaces': interfaces,
|
|
|
- 'instances': all_instances,
|
|
|
- 'hostname_default': hostname_default,
|
|
|
+ context = viewinfo.context(vinfo)
|
|
|
+ localcontext = {
|
|
|
'groups' : groups,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
- }
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
+ }
|
|
|
+ context.update(localcontext)
|
|
|
+
|
|
|
+ return render(request, 'config/groups_list.html', context)
|
|
|
+
|
|
|
|
|
|
@is_authenticated
|
|
|
def instances(request):
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
-
|
|
|
- all_instances = perms.instance_getall_by_group(request)
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
-
|
|
|
- print(all_instances)
|
|
|
-
|
|
|
- if hostname_default == None:
|
|
|
- if all_instances.count() > 0:
|
|
|
- for i in all_instances:
|
|
|
- pprint.pprint(i.hostname)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
+
|
|
|
+ if vinfo.hostname_default == None:
|
|
|
+ if vinfo.all_instances.count() > 0:
|
|
|
+ for i in vinfo.all_instances:
|
|
|
instance_default(request, i.hostname)
|
|
|
|
|
|
else:
|
|
@@ -170,25 +120,19 @@ def instances(request):
|
|
|
|
|
|
groups = Group.objects.all()
|
|
|
|
|
|
-
|
|
|
- template = loader.get_template('config/instances.html')
|
|
|
- context = {
|
|
|
- 'instances': all_instances,
|
|
|
- 'hostname_default': hostname_default,
|
|
|
+ context = viewinfo.context(vinfo)
|
|
|
+ localcontext = {
|
|
|
'groups' : groups,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
- }
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
+ }
|
|
|
+ context.update(localcontext)
|
|
|
+
|
|
|
+ return render(request, 'config/instances.html', context)
|
|
|
+
|
|
|
|
|
|
@perms.is_superuser
|
|
|
@is_authenticated
|
|
|
def instance_add(request):
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
-
|
|
|
- #interfaces = vyos.get_interfaces()
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
if len(request.POST) > 0:
|
|
|
instance = Instance()
|
|
@@ -205,24 +149,17 @@ def instance_add(request):
|
|
|
else:
|
|
|
instance_id = 0
|
|
|
|
|
|
- template = loader.get_template('config/instance_add.html')
|
|
|
- context = {
|
|
|
- 'hostname_default': hostname_default,
|
|
|
- 'instance_id': instance_id,
|
|
|
- 'instances': all_instances,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
- }
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
+ context = viewinfo.context(vinfo)
|
|
|
+ localcontext = {
|
|
|
+ }
|
|
|
+ context.update(localcontext)
|
|
|
+
|
|
|
+ return render(request, 'config/instance_add.html', context)
|
|
|
|
|
|
@perms.is_superuser
|
|
|
@is_authenticated
|
|
|
def group_add(request):
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
-
|
|
|
- #interfaces = vyos.get_interfaces()
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
error_message = None
|
|
|
|
|
@@ -237,25 +174,18 @@ def group_add(request):
|
|
|
else:
|
|
|
instance_id = 0
|
|
|
|
|
|
- template = loader.get_template('config/group_add.html')
|
|
|
- context = {
|
|
|
- 'hostname_default': hostname_default,
|
|
|
- 'instance_id': instance_id,
|
|
|
- 'instances': all_instances,
|
|
|
+ context = viewinfo.context(vinfo)
|
|
|
+ localcontext = {
|
|
|
'error_message' : error_message,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
}
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
+ context.update(localcontext)
|
|
|
+
|
|
|
+ return render(request, 'config/group_add.html', context)
|
|
|
|
|
|
@perms.is_superuser
|
|
|
@is_authenticated
|
|
|
def user_add(request):
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
-
|
|
|
- #interfaces = vyos.get_interfaces()
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
error_message = None
|
|
|
|
|
@@ -294,28 +224,21 @@ def user_add(request):
|
|
|
user_create.save()
|
|
|
return redirect('config:users-list')
|
|
|
|
|
|
+ context = viewinfo.context(vinfo)
|
|
|
+ localcontext = {
|
|
|
+ 'error_message' : error_message,
|
|
|
+ 'name' : name,
|
|
|
+ 'username' : username,
|
|
|
+ 'password' : password,
|
|
|
+ 'email' : email,
|
|
|
+ }
|
|
|
+ context.update(localcontext)
|
|
|
|
|
|
- template = loader.get_template('config/user_add.html')
|
|
|
- context = {
|
|
|
- 'hostname_default': hostname_default,
|
|
|
- 'instances': all_instances,
|
|
|
- 'error_message' : error_message,
|
|
|
- 'name' : name,
|
|
|
- 'username' : username,
|
|
|
- 'password' : password,
|
|
|
- 'email' : email,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
-
|
|
|
- }
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
+ return render(request, 'config/user_add.html', context)
|
|
|
|
|
|
@is_authenticated
|
|
|
def instance_conntry(request, hostname):
|
|
|
- is_superuser = perms.get_is_superuser(request.user)
|
|
|
-
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
if perms.user_has_hostname_access(request.user, hostname) == False:
|
|
|
return redirect('config:instances')
|
|
@@ -326,23 +249,19 @@ def instance_conntry(request, hostname):
|
|
|
if connected == True:
|
|
|
request.session['hostname'] = hostname
|
|
|
|
|
|
+ context = viewinfo.context(vinfo)
|
|
|
+ localcontext = {
|
|
|
+ 'instance': instance,
|
|
|
+ "connected": connected,
|
|
|
+ }
|
|
|
+ context.update(localcontext)
|
|
|
|
|
|
- template = loader.get_template('config/instance_conntry.html')
|
|
|
- context = {
|
|
|
- 'instance': instance,
|
|
|
- "connected": connected,
|
|
|
- 'instances': all_instances,
|
|
|
- 'hostname_default': hostname_default,
|
|
|
- 'username': request.user,
|
|
|
- 'is_superuser' : is_superuser,
|
|
|
- }
|
|
|
- return HttpResponse(template.render(context, request))
|
|
|
+ return render(request, 'config/instance_conntry.html', context)
|
|
|
|
|
|
# get default instance or set default instance
|
|
|
@is_authenticated
|
|
|
def instance_change(request, hostname = False):
|
|
|
-
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
#method = None
|
|
|
if hostname != "__none__":
|
|
@@ -376,27 +295,19 @@ def instance_change(request, hostname = False):
|
|
|
@perms.is_superuser
|
|
|
@is_authenticated
|
|
|
def instance_remove(request, hostname):
|
|
|
-
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
- # permcheck
|
|
|
instance = Instance.objects.get(hostname=hostname)
|
|
|
-
|
|
|
- hostname_default = vyos.get_hostname_prefered(request)
|
|
|
-
|
|
|
- #if hostname_default != hostname:
|
|
|
instance.delete()
|
|
|
|
|
|
return redirect('config:instances')
|
|
|
|
|
|
@perms.is_superuser
|
|
|
@is_authenticated
|
|
|
-def instance_changegroup(request, hostname):
|
|
|
-
|
|
|
- all_instances = vyos.instance_getall_by_group(request)
|
|
|
+def instance_changegroup(request, hostname):
|
|
|
+ vinfo = viewinfo.prepare(request)
|
|
|
|
|
|
group_name = request.POST.get('group')
|
|
|
- print(group_name, hostname)
|
|
|
|
|
|
if group_name == "__admin__":
|
|
|
instance = Instance.objects.get(hostname=hostname)
|
|
@@ -409,11 +320,4 @@ def instance_changegroup(request, hostname):
|
|
|
instance.save()
|
|
|
|
|
|
|
|
|
- return redirect('config:instances')
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ return redirect('config:instances')
|