removed blacklist things

This commit is contained in:
Esther Kleinhenz 2018-10-30 18:51:48 +01:00
parent d773cba908
commit 62c84570cc
4 changed files with 22 additions and 82 deletions

View File

@ -4,7 +4,7 @@ from django.contrib import admin
from django.core.exceptions import PermissionDenied
from django.utils.translation import ugettext_lazy as _
from .models import Hit, HitCount, BlacklistIP, BlacklistUserAgent
from .models import Hit, HitCount
class HitAdmin(admin.ModelAdmin):
@ -31,36 +31,6 @@ class HitAdmin(admin.ModelAdmin):
del actions['delete_selected']
return actions
def blacklist_ips(self, request, queryset):
for obj in queryset:
ip, created = BlacklistIP.objects.get_or_create(ip=obj.ip)
if created:
ip.save()
msg = _("Successfully blacklisted %d IPs") % queryset.count()
self.message_user(request, msg)
blacklist_ips.short_description = _("Blacklist selected IP addresses")
def blacklist_user_agents(self, request, queryset):
for obj in queryset:
ua, created = BlacklistUserAgent.objects.get_or_create(
user_agent=obj.user_agent)
if created:
ua.save()
msg = _("Successfully blacklisted %d User Agents") % queryset.count()
self.message_user(request, msg)
blacklist_user_agents.short_description = _("Blacklist selected User Agents")
def blacklist_delete_ips(self, request, queryset):
self.blacklist_ips(request, queryset)
self.delete_queryset(request, queryset)
blacklist_delete_ips.short_description = _(
"Delete selected hits and blacklist related IP addresses")
def blacklist_delete_user_agents(self, request, queryset):
self.blacklist_user_agents(request, queryset)
self.delete_queryset(request, queryset)
blacklist_delete_user_agents.short_description = _(
"Delete selected hits and blacklist related User Agents")
def delete_queryset(self, request, queryset):
if not self.has_delete_permission(request):
@ -88,15 +58,3 @@ class HitCountAdmin(admin.ModelAdmin):
return False
admin.site.register(HitCount, HitCountAdmin)
class BlacklistIPAdmin(admin.ModelAdmin):
pass
admin.site.register(BlacklistIP, BlacklistIPAdmin)
class BlacklistUserAgentAdmin(admin.ModelAdmin):
pass
admin.site.register(BlacklistUserAgent, BlacklistUserAgentAdmin)

View File

@ -0,0 +1,19 @@
# Generated by Django 2.1.2 on 2018-10-30 17:50
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('hitcount', '0002_index_ip_and_session'),
]
operations = [
migrations.DeleteModel(
name='BlacklistIP',
),
migrations.DeleteModel(
name='BlacklistUserAgent',
),
]

View File

@ -155,34 +155,6 @@ class Hit(models.Model):
super(Hit, self).delete()
@python_2_unicode_compatible
class BlacklistIP(models.Model):
ip = models.CharField(max_length=40, unique=True)
class Meta:
db_table = "hitcount_blacklist_ip"
verbose_name = _("Blacklisted IP")
verbose_name_plural = _("Blacklisted IPs")
def __str__(self):
return '%s' % self.ip
@python_2_unicode_compatible
class BlacklistUserAgent(models.Model):
user_agent = models.CharField(max_length=255, unique=True)
class Meta:
db_table = "hitcount_blacklist_user_agent"
verbose_name = _("Blacklisted User Agent")
verbose_name_plural = _("Blacklisted User Agents")
def __str__(self):
return '%s' % self.user_agent
class HitCountMixin(object):
"""
HitCountMixin provides an easy way to add a `hit_count` property to your

View File

@ -8,7 +8,7 @@ from django.conf import settings
from django.views.generic import View, DetailView
from hitcount.utils import get_ip
from hitcount.models import Hit, HitCount, BlacklistIP, BlacklistUserAgent
from hitcount.models import Hit, HitCount
from hitcount.utils import RemovedInHitCount13Warning
@ -49,16 +49,7 @@ class HitCountMixin(object):
hits_per_ip_limit = getattr(settings, 'HITCOUNT_HITS_PER_IP_LIMIT', 0)
exclude_user_group = getattr(settings, 'HITCOUNT_EXCLUDE_USER_GROUP', None)
# first, check our request against the IP blacklist
if BlacklistIP.objects.filter(ip__exact=ip):
return UpdateHitCountResponse(
False, 'Not counted: user IP has been blacklisted')
# second, check our request against the user agent blacklist
if BlacklistUserAgent.objects.filter(user_agent__exact=user_agent):
return UpdateHitCountResponse(
False, 'Not counted: user agent has been blacklisted')
# third, see if we are excluding a specific user group or not
if exclude_user_group and is_authenticated_user:
if user.groups.filter(name__in=exclude_user_group):