-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsignup.py
55 lines (38 loc) · 1.3 KB
/
signup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import json
import webapp2
from google.appengine.ext.webapp import util
from google.appengine.ext import db
from google.appengine.api import users
import mail
from model import InviteToken
from model import User
import utils
class SignupHandler(webapp2.RequestHandler):
def get(self):
"""Crete a new User using an InviteToken"""
token = self.request.get('token')
google_user = users.get_current_user()
if not google_user:
url = users.create_login_url('/signup?token=%s' % token)
self.redirect(url)
return
if utils.get_current_user():
# User is already logged in
self.redirect('/')
return
m = InviteToken.all().filter('token =', token).get()
if not m:
self.error(404)
return
if m.user_signed_up:
self.error(500)
return
new_user = utils.create_user(google_user)
m.user_signed_up = new_user
m.save()
sender = User.get_by_id(m.sender)
utils.copy_feeds_from_user(sender, new_user)
self.redirect('/')
app = webapp2.WSGIApplication([
('/signup', SignupHandler),
], debug=True)