def get_user_for_update(request, response): """ Utility function that does a bunch of the input validation required for services that update user information.""" # Verify the gameid is valid: gameid = request.get('gameid') if gameid not in GAMES: write_response(response, "4", None, "Gameid is invalid: %s" % gameid) return None # Get the user name = request.get('name') game = GAMES[gameid]['name'] user = GameUser.get_by_name(name, game) if not user: write_response(response, "6", None, "User %s does not exist" % name) return None # Ensure token is still valid token = request.get('token') if token != user.token: logging.error(token + " != " + user.token) write_response(response, "7", None, "Token %s is invalid" % token) return None exp_date = user.last_login_date + timedelta(seconds=user.expiration) if exp_date < datetime.now(): write_response(response, "8", None, "Token has expired. Log in again.") return None return user
def get_user_for_update(request, response): """ Utility function that does a bunch of the input validation required for services that update user information.""" # Verify the gameid is valid: gameid = request.get('gameid') if gameid not in GAMES: write_response(response, "4", None, "Gameid is invalid: %s" % gameid) return None # Get the user name = request.get('name') game = GAMES[gameid]['name'] user = GameUser.get_by_name(name, game) if not user: write_response(response, "6", None, "User %s does not exist" % name) return None # Ensure token is still valid token = request.get('token') if token != user.token: logging.error(token + " != " + user.token) write_response(response, "7", None, "Token %s is invalid" % token) return None exp_date = user.last_login_date + timedelta(seconds=user.expiration) if exp_date < datetime.now(): write_response(response, "8", None, "Token has expired. Log in again.") return None return user
def post(self): logging.debug("In LoginHandler") self.response.headers['Content-Type'] = 'application/json' # Verify the gameid is valid: gameid = self.request.get('gameid') if gameid not in GAMES: write_response(self.response, "4", None, "Gameid is invalid.") return # Ensure name is valid name = self.request.get('name') user = GameUser.get_by_name(name, GAMES[gameid]['name']) if not user: write_response(self.response, "3", None, "User name or password is invalid.") return # Ensure password matches one in DB password = self.request.get('password') encrypted_password, salt = saltedhash_hex(password, user.salt) if encrypted_password != user.password: write_response(self.response, "3", None, "User name or Password is incorrect.") return # Ensure game matches one in DB game = GAMES[gameid]['name'] if game != user.game: write_response(self.response, "5", None, "Gameid incorrect for this user %s." % name) return # Ensure user is verified if user.status == USER_UNVERIFIED: write_response(self.response, "14", None, "User %s is unverified." % name) return #Generate token token = get_token_str() expiration = get_token_expiration( int(self.request.get('expiration', 0))) user.last_login_date = datetime.now() user.token = token user.expiration = expiration user.put() write_response(self.response, "0", json.dumps(dict(token=token)))
def post(self): logging.debug("In LoginHandler") self.response.headers['Content-Type'] = 'application/json' # Verify the gameid is valid: gameid = self.request.get('gameid') if gameid not in GAMES: write_response(self.response, "4", None, "Gameid is invalid.") return # Ensure name is valid name = self.request.get('name') user = GameUser.get_by_name(name, GAMES[gameid]['name']) if not user: write_response(self.response, "3", None, "User name or password is invalid.") return # Ensure password matches one in DB password = self.request.get('password') encrypted_password, salt = saltedhash_hex(password, user.salt) if encrypted_password != user.password: write_response(self.response, "3", None, "User name or Password is incorrect.") return # Ensure game matches one in DB game = GAMES[gameid]['name'] if game != user.game: write_response(self.response, "5", None, "Gameid incorrect for this user %s." % name) return # Ensure user is verified if user.status == USER_UNVERIFIED: write_response(self.response, "14", None, "User %s is unverified." % name) return #Generate token token = get_token_str() expiration = get_token_expiration(int(self.request.get('expiration', 0))) user.last_login_date = datetime.now() user.token = token user.expiration = expiration user.put() write_response(self.response, "0", json.dumps(dict(token=token)))
def post(self): logging.debug("In DeleteUserHandler") self.response.headers['Content-Type'] = 'application/json' # Verify the gameid is valid: gameid = self.request.get('gameid') if gameid not in GAMES: write_response(self.response, "4", None, "gameid is invalid: %s" % gameid) return # Get the user name = self.request.get('name') game = GAMES[self.request.get('gameid')]['name'] user = GameUser.get_by_name(name, game) if not user: write_response(self.response, "6", None, "User %s does not exist" % name) return user.delete() write_response(self.response, "0", {})
def post(self): logging.debug("In DeleteUserHandler") self.response.headers['Content-Type'] = 'application/json' # Verify the gameid is valid: gameid = self.request.get('gameid') if gameid not in GAMES: write_response(self.response, "4", None, "gameid is invalid: %s" % gameid) return # Get the user name = self.request.get('name') game = GAMES[self.request.get('gameid')]['name'] user = GameUser.get_by_name(name, game) if not user: write_response(self.response, "6", None, "User %s does not exist" % name) return user.delete() write_response(self.response, "0", {})