Пример #1
0
    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