def post(self): federated_identity = self.get_argument("openid_identifier") logging.info(federated_identity) profile = Profile.get_by_key_name(federated_identity) if profile: dest_url = "/blog" else: dest_url = "/register" login_url = users.create_login_url(dest_url=dest_url, federated_identity=federated_identity) self.redirect(login_url)
def get(self): user = users.get_current_user() if user: identity = user.federated_identity() if identity and Profile.get_by_key_name(identity): self.redirect("/blog") else: self.redirect("/register") else: self.render("index.html", video_url=configuration.INTRO_VIDEO_URL, login_url="/login")
def GET(self): p = Profile.get_by_key_name(self.key) or {} s = SatScore.get_by_key_name(self.key) or {} sat2s = SatSubjectScore.all().filter('uid =', self.key) return super(self.__class__, self).GET({ 'profile' : p, 'sat' : s, 'sat2s' : sat2s, 'groups' : SatSubjectScore._subject_categories, 'subjects' : SatSubjectScore._subjects })
def process_profile(self): params = web.input() keys = ['firstname', 'lastname', 'age', 'school'] attrs = { k : params[k] for k in keys } attrs['age'] = int(attrs['age']) attrs['uid'] = self.key attrs['email'] = auth.user().email(); p = Profile.get_by_key_name(self.key) if not p: p = Profile(key_name=self.key, **attrs) else: for k, v in attrs.iteritems(): setattr(p, k, v) try: p.put() except TransactionFailedError: # Ideally handle the error pass