1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- from django.core.exceptions import PermissionDenied
- from django.shortcuts import redirect
- from django.utils.translation import gettext as _
- from misago.users.bans import get_request_ip_ban
- def deny_authenticated(f):
- def decorator(request, *args, **kwargs):
- if request.user.is_authenticated():
- raise PermissionDenied(
- _("This action is not available to signed in users."))
- else:
- return f(request, *args, **kwargs)
- return decorator
- def deny_guests(f):
- def decorator(request, *args, **kwargs):
- if request.user.is_anonymous():
- raise PermissionDenied(
- _("This action is not available to guests."))
- else:
- return f(request, *args, **kwargs)
- return decorator
- def deny_banned_ips(f):
- def decorator(request, *args, **kwargs):
- ban = get_request_ip_ban(request)
- if ban:
- raise PermissionDenied(
- _("Your IP address is banned from performing this action."),
- {'ban': ban.get_serialized_message()})
- else:
- return f(request, *args, **kwargs)
- return decorator
- def deflect_authenticated(f):
- def decorator(request, *args, **kwargs):
- if request.user.is_authenticated():
- return redirect('misago:index')
- else:
- return f(request, *args, **kwargs)
- return decorator
- def deflect_guests(f):
- def decorator(request, *args, **kwargs):
- if request.user.is_anonymous():
- return redirect('misago:index')
- else:
- return f(request, *args, **kwargs)
- return decorator
- def deflect_banned_ips(f):
- def decorator(request, *args, **kwargs):
- ban = get_request_ip_ban(request)
- if ban:
- return redirect('misago:index')
- else:
- return f(request, *args, **kwargs)
- return decorator
|