예제 #1
0
 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)
예제 #2
0
 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")
예제 #3
0
 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
     })
예제 #4
0
    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