import json import logging from django.contrib import messages from django.db.transaction import atomic from django.forms import model_to_dict from django.shortcuts import HttpResponse, redirect from django_auth_ldap.backend import LDAPBackend from django.contrib.auth.decorators import login_required from django.http import JsonResponse from django.views.decorators.http import require_http_methods from django_proxmox_mikrotik.configs import MikrotikConfig from lib.decorators import force_write from manager.models import CloneContainer @atomic @force_write def test_mikrotik(request): from mikrotik.models import DNSStatic dns = DNSStatic.objects.create(name='test.test1', address='192.168.1.254') logging.debug(model_to_dict(dns)) response = dns.sync_to_router() return HttpResponse(json.dumps([model_to_dict(dns), response], indent=4, default=lambda x: str(x)), content_type="application/json") def sync_all(request): """TODO - just get the user and check on superuser settings via groups does not work at the moment""" from manager.admin import resync_all backend = LDAPBackend() user = backend.authenticate(request, request.user.username, request.POST.get('password')) if user and user.is_superuser: resync_all() messages.success(request, 'Sync all initiated') else: messages.error(request, 'Not authorized') return redirect('frontend:dashboard')