from django.db import transaction from django.views.generic import View from boards import utils, settings from boards.models.user import Ban BAN_REASON_SPAM = 'Autoban: spam bot' CONTEXT_FORM = 'form' class BaseBoardView(View): def get_context_data(self, **kwargs): return dict() @transaction.atomic def _ban_current_user(self, request): """ Add current user to the IP ban list """ ip = utils.get_client_ip(request) whitelist = settings.get_list('Forms', 'BanWhitelist') if not ip in whitelist: ban, created = Ban.objects.get_or_create(ip=ip) if created: ban.can_read = False ban.reason = BAN_REASON_SPAM ban.save()