base.py
35 lines
| 812 B
| text/x-python
|
PythonLexer
neko259
|
r542 | from django.db import transaction | ||
from django.template import RequestContext | ||||
from django.views.generic import View | ||||
neko259
|
r690 | |||
neko259
|
r542 | from boards import utils | ||
neko259
|
r690 | from boards.models.user import Ban | ||
neko259
|
r542 | |||
BAN_REASON_SPAM = 'Autoban: spam bot' | ||||
neko259
|
r722 | CONTEXT_FORM = 'form' | ||
neko259
|
r542 | |||
class BaseBoardView(View): | ||||
def get_context_data(self, **kwargs): | ||||
request = kwargs['request'] | ||||
neko259
|
r690 | # context = self._default_context(request) | ||
neko259
|
r542 | context = RequestContext(request) | ||
return context | ||||
@transaction.atomic | ||||
def _ban_current_user(self, request): | ||||
""" | ||||
Add current user to the IP ban list | ||||
""" | ||||
ip = utils.get_client_ip(request) | ||||
ban, created = Ban.objects.get_or_create(ip=ip) | ||||
if created: | ||||
ban.can_read = False | ||||
ban.reason = BAN_REASON_SPAM | ||||
ban.save() | ||||