You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

81 lines
2.0 KiB

from django.contrib.auth.decorators import login_required
from django.shortcuts import render, redirect, get_object_or_404
from forms import PoolForm
from models import IpPoolItem
import mydefs
@login_required
@mydefs.only_admins
def home(request):
pools = IpPoolItem.objects.get_pools()
if pools:
pools = map(lambda ip: (mydefs.int2ip(ip[0]), mydefs.int2ip(ip[1]), ip[2]), pools)
pools = mydefs.pag_mn(request, pools)
return render(request, 'ip_pool/index.html', {
'pools': pools
})
@login_required
@mydefs.only_admins
def ips(request):
ip_start = request.GET.get('ips')
ip_end = request.GET.get('ipe')
pool_ips = IpPoolItem.objects.filter(ip__gte=ip_start)
pool_ips = pool_ips.filter(ip__lte=ip_end)
pool_ips = mydefs.pag_mn(request, pool_ips)
return render(request, 'ip_pool/ips.html', {
'pool_ips': pool_ips,
'ips': ip_start,
'ipe': ip_end
})
@login_required
@mydefs.only_admins
def del_pool(request):
ip_start = request.GET.get('ips')
ip_end = request.GET.get('ipe')
pool_ips = IpPoolItem.objects.filter(ip__gte=ip_start)
pool_ips = pool_ips.filter(ip__lte=ip_end)
pool_ips = pool_ips.filter()
pool_ips.delete()
return mydefs.res_success(request, 'ip_pool:home')
@login_required
@mydefs.only_admins
def add_pool(request):
if request.method == 'POST':
frm = PoolForm(request.POST)
if frm.is_valid():
cd = frm.cleaned_data
IpPoolItem.objects.add_pool(cd['start_ip'], cd['end_ip'])
return redirect('ip_pool:home')
else:
warntext = u'Form is not valid'
else:
frm = PoolForm()
warntext = ''
return render(request, 'ip_pool/add_pool.html', {
'form': frm,
'warntext': warntext
})
@login_required
@mydefs.only_admins
def delip(request):
ipid = request.GET.get('id')
get_object_or_404(IpPoolItem, id=ipid).delete()
return mydefs.res_success(request, 'ip_pool:home')