Ver Fonte

config module refactoring

Roberto Berto há 4 anos atrás
pai
commit
c8d49f18b5
2 ficheiros alterados com 78 adições e 175 exclusões
  1. 0 1
      vycontrol/config/urls.py
  2. 78 174
      vycontrol/config/views.py

+ 0 - 1
vycontrol/config/urls.py

@@ -6,7 +6,6 @@ from . import views
 app_name = 'config'
 
 urlpatterns = [
-    path('', views.index, name='index'),
     path('instance-change/<str:hostname>', views.instance_change, name='instance-change'),
     path('users-list', views.users_list, name='users-list'),
     path('groups-list', views.groups_list, name='groups-list'),

+ 78 - 174
vycontrol/config/views.py

@@ -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')