Prevent reuse of invites. Fixes #15

This commit is contained in:
Trever Fischer
2012-03-07 18:04:19 -05:00
parent 163a4f27e8
commit e73d007a19

View File

@@ -1,6 +1,6 @@
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect, Http404
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.template import RequestContext from django.template import RequestContext
from django.contrib.auth.models import User from django.contrib.auth.models import User
@@ -92,7 +92,10 @@ def claimInvite(request, code=None):
if form.is_valid(): if form.is_valid():
code = form.cleaned_data['code'] code = form.cleaned_data['code']
if code: if code:
invite = models.Invite.objects.get(code__exact=code) try:
invite = models.Invite.objects.get(code__exact=code, claimer__exact=None, deleted__exact=False)
except models.Invite.DoesNotExist:
raise Http404
request.session['profile-invite'] = invite request.session['profile-invite'] = invite
return HttpResponseRedirect(reverse('profiles.views.register')) return HttpResponseRedirect(reverse('profiles.views.register'))
return render_to_response('profiles/claim_invite.html', {'form': form}, context_instance = RequestContext(request)) return render_to_response('profiles/claim_invite.html', {'form': form}, context_instance = RequestContext(request))