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.
82 lines
2.0 KiB
82 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()
|
|
print 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')
|