Skip to content

Commit

Permalink
Added Filter Domain origin
Browse files Browse the repository at this point in the history
  • Loading branch information
avara1986 committed Sep 11, 2014
1 parent ce65e5e commit 1042902
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
14 changes: 13 additions & 1 deletion events/api/api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#encoding: utf-8
import re
from rest_framework import generics, permissions
from rest_framework import status
#from rest_framework.decorators import api_view
Expand Down Expand Up @@ -37,8 +38,19 @@ def post(self, request, format=None):
#request.META['HTTP_ORIGIN']
#import ipdb; ipdb.set_trace()
event = Event.objects.get(pk=serializer.init_data['event'])
if event.url != "" and event.url is not None:
#import ipdb; ipdb.set_trace()
if 'HTTP_ORIGIN' in request.META.keys():
requestURL = request.META['HTTP_ORIGIN']
else:
requestURL = request.META['HTTP_REFERER']

if not re.search(event.url, requestURL):
serializer.data.update({'result': False})
serializer.data.update({'error_msg': 'No está permitido registrarse desde %s' % requestURL })
return Response(serializer.data, status=status.HTTP_201_CREATED)
# Puesto +2 para tests, TODO: cambiar a +1
if event.is_open and (event.num_registereds()+2 <= event.n_seats):
if event.is_open and (event.num_registereds()+1 <= event.n_seats):
serializer.save()
serializer.data.update({'result': True})
return Response(serializer.data, status=status.HTTP_201_CREATED)
Expand Down
4 changes: 3 additions & 1 deletion events/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class Event(models.Model):

registered = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=100)
url = models.CharField(max_length=100)
url = models.CharField(verbose_name="Url del evento", max_length=200, null=True, blank=True)
n_seats = models.PositiveIntegerField(verbose_name="Número de plazas")
n_seats_overflow = models.IntegerField()
address = models.CharField(max_length=200)
Expand All @@ -31,6 +31,8 @@ class Event(models.Model):
status = models.BooleanField(verbose_name="Activo", max_length=1, default=True)
deleted = models.BooleanField(verbose_name="Borrado", max_length=1, default=False)



def num_registereds(self):
return int(Attendee.objects.filter(event=self.pk).count())

Expand Down

0 comments on commit 1042902

Please sign in to comment.