Exemple #1
0
    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())
Exemple #5
0
    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))
Exemple #7
0
    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())