def post(self): username = self.get_current_user() if username is None: self.result("error", "Access denied.") return user = User.get_user(username) if user.permission_level < constants.PERMISSION_LEVEL_USER: self.result("error", "Access denied.") return try: displayname = strip_tags(self.get_argument("displayname")) email = strip_tags(self.get_argument("email")) showemail = bool(self.get_argument("showemail", False)) except: self.result("error", "Invalid arguments. Check that all fields are filled out correctly.") return session = SessionFactory() try: user.displayname = displayname user.email = email user.showemail = showemail session.add(user) session.commit() self.result("success", "Settings saved successfully.", user) finally: session.close()
def post(self): username = self.get_current_user() if username is None: self.result("error", "Access denied.") return user = User.get_user(username) if user.permission_level < constants.PERMISSION_LEVEL_ADMIN: self.result("error", "Access denied.") return try: username = self.get_argument("username") displayname = self.get_argument("displayname") email = self.get_argument("email", None) or None except: self.result("error", "Invalid arguments. Check that all fields are filled out correctly.") return session = SessionFactory() try: create_user(session, username, displayname, email) session.commit() self.result("success", "User added successfully.") finally: session.close()
def put(self, socket_connection, message, object_data): target_id = object_data[u'id'] target_username = object_data[u'username'] target_permission_level = int(object_data[u'permissions']) session = SessionFactory() try: if target_id is not None: user = session.query(User).filter(User.id==int(target_id)).one() user.username = target_username user.permission_level = target_permission_level else: user = User(target_username, target_permission_level) session.add(user) session.commit() self.on_update(user) finally: session.close() result_message = {'type': self.message_type, 'response': self.object_to_json(user), 'deferredId': message['deferredId'], } socket_connection.write_message(json.dumps(result_message))
def post(self): username = self.get_current_user() if username is None: self.result("error", "Access denied.") return user = User.get_user(username) if user.permission_level < constants.PERMISSION_LEVEL_USER: self.result("error", "Access denied.") return try: user1_id = int(self.get_argument("userSelect1")) user2_id = int(self.get_argument("userSelect2")) # date_time = self.get_argument("date") + " " + self.get_argument("time") games = [] for gnum in range(1): game = (int(self.get_argument("score_g{}_p0".format(gnum))), int(self.get_argument("score_g{}_p1".format(gnum)))) games.append(game) except: self.result("error", "Invalid arguments. Check that all fields are filled out correctly.") return if user1_id == user2_id: self.result("error", "Opponents must be different users.") return session = SessionFactory() try: user1 = session.query(User).filter(User.id == user1_id).one() user2 = session.query(User).filter(User.id == user2_id).one() # d = datetime.datetime.strptime(date_time, "%Y-%m-%d T%H:%M:%S") seconds = int(time.time()) #int(d.strftime('%s')) # filter out any games which have negative or all-zero scores games = filter(lambda g: all(map(lambda s: s >= 0, g)) and any(map(lambda s: s > 0, g)), games) if len(games) < 1: self.result("error", "A match consists of one or more games.") return current_score = (get_most_recent_ratings(user1.id).get('exposure',0), get_most_recent_ratings(user2.id).get('exposure',0)) match = create_match(session, user1, user2, seconds, games) session.commit() new_score = (get_most_recent_ratings(user1.id).get('exposure',0), get_most_recent_ratings(user2.id).get('exposure',0)) msg = "Match recorded successfully.<br><br>"\ "Points Changes:<br>" \ '%s: %0.3f<br>' \ '%s: %0.3f' % (user1.displayname, new_score[0]-current_score[0], user2.displayname, new_score[1]-current_score[1]) self.result("success", msg) finally: session.close()
def delete(self, socket_connection, message, object_id): session = SessionFactory() try: assignment = session.query(User).filter(User.id==object_id).delete() session.commit() finally: session.close() self.on_delete(object_id)
def post(self): username = self.get_current_user() if username is None: self.result("error", "Access denied.") return user = User.get_user(username) if user.permission_level < constants.PERMISSION_LEVEL_USER: self.result("error", "Access denied.") return try: user1_id = int(self.get_argument("userSelect1")) user2_id = int(self.get_argument("userSelect2")) date_time = self.get_argument("date") + " " + self.get_argument("time") games = [] for gnum in range(3): game = (int(self.get_argument("score_g{}_p0".format(gnum))), int(self.get_argument("score_g{}_p1".format(gnum)))) games.append(game) except: self.result("error", "Invalid arguments. Check that all fields are filled out correctly.") return if user1_id == user2_id: self.result("error", "Opponents must be different users.") return session = SessionFactory() try: user1 = session.query(User).filter(User.id == user1_id).one() user2 = session.query(User).filter(User.id == user2_id).one() d = datetime.datetime.strptime(date_time, "%Y-%m-%d T%H:%M:%S") seconds = int(d.strftime('%s')) # filter out any games which have negative or all-zero scores games = filter(lambda g: all(map(lambda s: s >= 0, g)) and any(map(lambda s: s > 0, g)), games) if len(games) < 2: self.result("error", "A match consists of two or more games.") return match = create_match(session, user1, user2, seconds, games) session.commit() self.result("success", "Match recorded successfully.") finally: session.close()
def post(self): session = SessionFactory() try: max_match_id = session.query(sqlalchemy.func.max(Match.id)).one()[0] match = session.query(Match).filter(Match.id==max_match_id).all() games = session.query(Game).filter(Game.match_id==max_match_id).all() partipations = session.query(Participation).filter(Participation.match_id==max_match_id).all() true_skill = session.query(TrueSkillCache).filter(TrueSkillCache.match_id==max_match_id).all() scores = [] for game in games: scores += session.query(Score).filter(Score.game_id==game.id).all() for row in match + games + partipations + true_skill + scores: session.delete(row) session.commit() self.result("success", "Match #%s removed." % max_match_id) finally: session.close()
#!/usr/bin/python import os import sys system_directory = os.path.dirname(os.path.abspath(__file__)) sys.path.append(system_directory + "/imports") username = sys.argv[1] permission_level = int(sys.argv[2]) from database.User import User from database.SessionFactory import SessionFactory session = SessionFactory() try: user = User.get_user(username) user.permission_level = permission_level session.add(user) session.commit() print "Successfully set permission level for user '{}' to {}.".format(user.username, user.permission_level) finally: session.close()