django-defender/defender/views.py

39 lines
1.2 KiB
Python

from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.contrib import admin
from django.contrib.admin.views.decorators import staff_member_required
from django.urls import reverse
from .utils import get_blocked_ips, get_blocked_usernames, unblock_ip, unblock_username
@staff_member_required
def block_view(request):
""" List the blocked IP and Usernames """
blocked_ip_list = get_blocked_ips()
blocked_username_list = get_blocked_usernames()
context = admin.site.index(request).context_data
context.update({
"blocked_ip_list": blocked_ip_list,
"blocked_username_list": blocked_username_list,
"title": "Blocked logins",
})
return render(request, "defender/admin/blocks.html", context)
@staff_member_required
def unblock_ip_view(request, ip_address):
""" upblock the given ip """
if request.method == "POST":
unblock_ip(ip_address)
return HttpResponseRedirect(reverse("defender_blocks_view"))
@staff_member_required
def unblock_username_view(request, username):
""" unblockt he given username """
if request.method == "POST":
unblock_username(username)
return HttpResponseRedirect(reverse("defender_blocks_view"))