def checkUser(roomId, cookie, master=False): """ Checks if a given userToken represents an legitimate party room member\n It could also check if the userToken belongs to master if "master" flag is present :param roomId: room of which the user supposedly belongs to\n :param cookie: value saved on the user device in a cookie\n :optionalParam master: True - check against master instead of regular user\n :returns: if verified - success, else - failure """ #parse the cookie userId = token = mac = '' parts = cookie.split(':') if len(parts) == 3: userId = parts[0] token = parts[1] mac = parts[2] else: return False #check cookie integrity if SecurityUtils.generateCookie(userId, token) == cookie: #check is cookie not fake if master: user = DBUtils.get_master(roomId) return user is not None and userId in user and token == user[ userId] # check if tokens match else: user = DBUtils.get_member(userId, roomId) return user is not None and userId in user and token == user[ userId]['token'] return False
def dequeue_song(self, room_number, url, name=None, master_id=None): # TODO - change when master is known original_master = '' master_id='test' if master_id is not None: original_master = DBUtils.get_master(room_number) # TODO - uncomment once the master_id is on # if original_master != master_id: # msg = 'Not a master to dequeue' # return False, None, None, msg history, queue = DBUtils.get_all_songs(room_number) if url in queue: song = queue[url] del queue[url] history[url] = song else: msg = 'Song does not exist in queue' return False, history, queue, msg is_successful, history, queue = DBUtils.update_song_lists(room_number, history, queue) if is_successful: return True, history, queue, None else: msg = 'Something went wrong! please try again' return False, history, queue, msg