Esempio n. 1
0
def register(request):
	response = JSONResponse("success")
	if request.method != 'POST':
		response.add_error('Bad request.')
	else:
		print request.POST['birthday']
		valid = True
		match = User.objects.filter(username = request.POST['username'])
		if len(match) > 0:
			response.add_error('Username is already in use.', 'register_error')
			valid = False
		match = User.objects.filter(email = request.POST['email'])
		if len(match) > 0:
			response.add_error('Email address is already registered.', 'register_error')
			valid = False
		if len(request.POST['password']) < 6:
			response.add_error('The entered password is less than 6 characters.', 'register_error')
			valid = False
		if len(request.POST['username']) < 3:
			response.add_error('The requested username is too short.', 'register_error')
			valid = False
		if len(request.POST['firstname']) == 0 or len(request.POST['lastname']) == 0:
			response.add_error('You must provide both first and last name.', 'register_error')
		global mail_re
		if mail_re == None:
			mail_re = re.compile('^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+.[a-zA-Z]{2,6}$')
		if mail_re.match(request.POST['email']) is None:
			response.add_error('Invalid email address', 'register_error')
			valid = False
		if valid == True:
			user = User.objects.create_user(request.POST['username'], request.POST['email'], request.POST['password'])
			user.save()
			profile = Profile()
			profile.userLink = user
			profile.birthday = datetime.datetime.strptime(request.POST['birthday'], '%Y-%m-%d').date()
			profile.firstname = request.POST['firstname']
			profile.lastname = request.POST['lastname']
			profile.country = request.POST['country']
			profile.biography = request.POST['bio']
			profile.rights = 0
			profile.save()
			user = authenticate(username=request.POST['username'], password=request.POST['password'])
			login(request, user)
	return response.respond()