def post(self): profile = Profile() profile.privateKey = str(uuid.uuid4()) profile.publicKey = str(uuid.uuid4()) profile.lastAccess = datetime.datetime.now() profile.name = cgi.escape(self.request.get('name')) has_guest = self.request.get('guest', 0) if has_guest == 0 or has_guest == "false": profile.guest = False else: profile.guest = True profile.put() profileData = { 'privateKey': profile.privateKey, 'publicKey': profile.publicKey, 'name': profile.name, 'guest': profile.guest } self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(json.dumps(profileData))
def post(self): privateKey = cgi.escape(self.request.get('privateKey')) profile = Profile.all().filter("privateKey =", privateKey).get() # should do nothing and tell no error, to avoid ppl searching for private keys? if(not profile): self.response.set_status(500, message="Can't find profile with key " + privateKey) return if (not profile.guest): self.response.set_status(500, message="Can't change an already registered profile when it is not guest") return profile.guest = False profile.name = cgi.escape(self.request.get('name')) profile.lastAccess = datetime.datetime.now() profile.put() scores = Score.all() scores = scores.filter("profilePublicKey =", profile.publicKey) for score in scores: score.name = profile.name score.put() profileData = {'privateKey': profile.privateKey, 'publicKey': profile.publicKey, 'name':profile.name, 'guest': profile.guest } self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(json.dumps(profileData))
def get(self): profiles = list() for profile in Profile.all(): profiles.append(profile) isAdmin = users.is_current_user_admin() template_values = {'profiles':profiles, 'admin':isAdmin, 'user':users.get_current_user(), 'signInUrl':users.create_login_url('/'), 'signOutUrl':users.create_logout_url('/')} path = os.path.join(os.path.dirname(__file__), 'profileList.html') self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(path, template_values))
def post(self): gameKey = cgi.escape(self.request.get('gameKey')) game = Game.all().filter("gameKey =", gameKey).get() if (not game): self.response.set_status(500, message="Can't find game with key " + gameKey) return currentTime = datetime.datetime.now() score = Score() score.name = cgi.escape(self.request.get('name')) score.tags = self.request.get_all('tag') score.points = self.request.get_range('points') score.data = cgi.escape(self.request.get('data', '{}')) score.profilePublicKey = self.request.get('profilePublicKey', None) profilePrivateKey = self.request.get('profilePrivateKey', None) if (profilePrivateKey <> None): profilePrivateKey = cgi.escape(profilePrivateKey) profile = Profile.all().filter("privateKey =", profilePrivateKey).get() if (profile <> None): score.profilePublicKey = profile.publicKey score.name = profile.name # update profile last access time profile.lastAccess = currentTime profile.put() else: self.response.set_status( 500, message="Can't find profile to submit score") return score.year, score.month, score.week, score.day = dateutils.get_datetime_data( currentTime) score.game = game score.put() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(score.key())
def get(self): profiles = list() for profile in Profile.all(): profiles.append(profile) isAdmin = users.is_current_user_admin() template_values = { 'profiles': profiles, 'admin': isAdmin, 'user': users.get_current_user(), 'signInUrl': users.create_login_url('/'), 'signOutUrl': users.create_logout_url('/') } path = os.path.join(os.path.dirname(__file__), 'profileList.html') self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(path, template_values))
def post(self): privateKey = cgi.escape(self.request.get('privateKey')) profile = Profile.all().filter("privateKey =", privateKey).get() # should do nothing and tell no error, to avoid ppl searching for private keys? if (not profile): self.response.set_status(500, message="Can't find profile with key " + privateKey) return if (not profile.guest): self.response.set_status( 500, message= "Can't change an already registered profile when it is not guest" ) return profile.guest = False profile.name = cgi.escape(self.request.get('name')) profile.lastAccess = datetime.datetime.now() profile.put() scores = Score.all() scores = scores.filter("profilePublicKey =", profile.publicKey) for score in scores: score.name = profile.name score.put() profileData = { 'privateKey': profile.privateKey, 'publicKey': profile.publicKey, 'name': profile.name, 'guest': profile.guest } self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(json.dumps(profileData))
def post(self): gameKey = cgi.escape(self.request.get('gameKey')) game = Game.all().filter("gameKey =", gameKey ).get() if(not game): self.response.set_status(500,message="Can't find game with key " + gameKey) return currentTime = datetime.datetime.now() score = Score() score.name = cgi.escape(self.request.get('name')) score.tags = self.request.get_all('tag') score.points = self.request.get_range('points') score.data = cgi.escape(self.request.get('data', '{}')) score.profilePublicKey = self.request.get('profilePublicKey', None) profilePrivateKey = self.request.get('profilePrivateKey', None) if (profilePrivateKey <> None): profilePrivateKey = cgi.escape(profilePrivateKey) profile = Profile.all().filter("privateKey =", profilePrivateKey).get() if (profile <> None): score.profilePublicKey = profile.publicKey score.name = profile.name # update profile last access time profile.lastAccess = currentTime profile.put() else: self.response.set_status(500,message="Can't find profile to submit score") return score.year, score.month, score.week, score.day = dateutils.get_datetime_data(currentTime) score.game = game score.put() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(score.key())