polyphonic/interface/decorators.py
2020-09-06 22:22:28 +10:00

30 lines
953 B
Python

from django.http import HttpResponseRedirect
def check_allowed(view_func):
def _view(request, *args, **kwargs):
code = request.GET.get('code')
if code:
# just change if we can
try:
ensemble = request.session.get('registered', {})[code.replace('-', '')]
request.session['ensemble'] = ensemble
except KeyError:
# need to register this code
return HttpResponseRedirect('/register?code=' + code)
request.ensemble_id = request.session.get('ensemble')
if request.ensemble_id is None:
return HttpResponseRedirect('/register')
return view_func(request, *args, **kwargs)
_view.__name__ = view_func.__name__
_view.__dict__ = view_func.__dict__
_view.__doc__ = view_func.__doc__
return _view