예제 #1
0
def reset_user_dict(user_code, filename, user_id=None, temp_user_id=None, force=False):
    #logmessage("reset_user_dict called with " + str(user_code) + " and " + str(filename))
    if force:
        the_user_id = None
    else:
        if user_id is None and temp_user_id is None:
            if current_user.is_authenticated and not current_user.is_anonymous:
                user_type = 'user'
                the_user_id = current_user.id
            else:
                user_type = 'tempuser'
                the_user_id = session.get('tempuser', None)
        elif user_id is not None:
            user_type = 'user'
            the_user_id = user_id
        else:
            user_type = 'tempuser'
            the_user_id = temp_user_id
    if the_user_id is None:
        UserDictKeys.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        do_delete = True
    else:
        if user_type == 'user':
            UserDictKeys.query.filter_by(key=user_code, filename=filename, user_id=the_user_id).delete()
        else:
            UserDictKeys.query.filter_by(key=user_code, filename=filename, temp_user_id=the_user_id).delete()
        db.session.commit()
        existing_user_dict_key = UserDictKeys.query.filter_by(key=user_code, filename=filename).first()
        if not existing_user_dict_key:
            do_delete = True
        else:
            do_delete = False
    if do_delete:
        UserDict.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        for upload in Uploads.query.filter_by(key=user_code, yamlfile=filename, persistent=False).all():
            old_file = SavedFile(upload.indexno)
            old_file.delete()
        Uploads.query.filter_by(key=user_code, yamlfile=filename, persistent=False).delete()
        db.session.commit()
        # Attachments.query.filter_by(key=user_code, filename=filename).delete()
        # db.session.commit()
        SpeakList.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        ChatLog.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        Shortener.query.filter_by(uid=user_code, filename=filename).delete()
        db.session.commit()
    #logmessage("reset_user_dict: done")
    return
예제 #2
0
def reset_user_dict(user_code,
                    filename,
                    user_id=None,
                    temp_user_id=None,
                    force=False):
    #logmessage("reset_user_dict called with " + str(user_code) + " and " + str(filename))
    if force:
        the_user_id = None
    else:
        if user_id is None and temp_user_id is None:
            if current_user.is_authenticated and not current_user.is_anonymous:
                user_type = 'user'
                the_user_id = current_user.id
            else:
                user_type = 'tempuser'
                the_user_id = session.get('tempuser', None)
        elif user_id is not None:
            user_type = 'user'
            the_user_id = user_id
        else:
            user_type = 'tempuser'
            the_user_id = temp_user_id
    if the_user_id is None:
        UserDictKeys.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        do_delete = True
    else:
        if user_type == 'user':
            UserDictKeys.query.filter_by(key=user_code,
                                         filename=filename,
                                         user_id=the_user_id).delete()
        else:
            UserDictKeys.query.filter_by(key=user_code,
                                         filename=filename,
                                         temp_user_id=the_user_id).delete()
        db.session.commit()
        existing_user_dict_key = UserDictKeys.query.filter_by(
            key=user_code, filename=filename).first()
        if not existing_user_dict_key:
            do_delete = True
        else:
            do_delete = False
    if do_delete:
        UserDict.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        for upload in Uploads.query.filter_by(key=user_code,
                                              yamlfile=filename,
                                              persistent=False).all():
            old_file = SavedFile(upload.indexno)
            old_file.delete()
        Uploads.query.filter_by(key=user_code,
                                yamlfile=filename,
                                persistent=False).delete()
        db.session.commit()
        # Attachments.query.filter_by(key=user_code, filename=filename).delete()
        # db.session.commit()
        SpeakList.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        ChatLog.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        Shortener.query.filter_by(uid=user_code, filename=filename).delete()
        db.session.commit()
    #logmessage("reset_user_dict: done")
    return
예제 #3
0
def delete_user_data(user_id, r, r_user):
    UserDict.query.filter_by(user_id=user_id).delete()
    db.session.commit()
    UserDictKeys.query.filter_by(user_id=user_id).delete()
    db.session.commit()
    ChatLog.query.filter_by(owner_id=user_id).delete()
    db.session.commit()
    ChatLog.query.filter_by(user_id=user_id).delete()
    db.session.commit()
    GlobalObjectStorage.query.filter_by(user_id=user_id).delete()
    db.session.commit()
    for package_auth in PackageAuth.query.filter_by(user_id=user_id).all():
        package_auth.user_id = 1
    db.session.commit()
    files_to_delete = list()
    for short_code_item in Shortener.query.filter_by(user_id=user_id).all():
        for email in Email.query.filter_by(short=short_code_item.short).all():
            for attachment in EmailAttachment.query.filter_by(email_id=email.id).all():
                files_to_delete.append(attachment.upload)
    for file_number in files_to_delete:
        the_file = SavedFile(file_number)
        the_file.delete()
    Shortener.query.filter_by(user_id=user_id).delete()
    db.session.commit()
    UserRoles.query.filter_by(user_id=user_id).delete()
    db.session.commit()
    for user_auth in UserAuthModel.query.filter_by(user_id=user_id):
        user_auth.password = ''
        user_auth.reset_password_token = ''
    db.session.commit()
    for section in ('playground', 'playgroundmodules', 'playgroundpackages', 'playgroundsources', 'playgroundstatic', 'playgroundtemplate'):
        the_section = SavedFile(user_id, section=section)
        the_section.delete()
    old_email = None
    for user_object in UserModel.query.filter_by(id=user_id):
        old_email = user_object.email
        user_object.active = False
        user_object.first_name = ''
        user_object.last_name = ''
        user_object.nickname = ''
        user_object.email = None
        user_object.country = ''
        user_object.subdivisionfirst = ''
        user_object.subdivisionsecond = ''
        user_object.subdivisionthird = ''
        user_object.organization = ''
        user_object.timezone = None
        user_object.language = None
        user_object.pypi_username = None
        user_object.pypi_password = None
        user_object.otp_secret = None
        user_object.social_id = 'disabled$' + text_type(user_id)
    db.session.commit()
    keys_to_delete = set()
    for key in r.keys('*userid:' + text_type(user_id)):
        keys_to_delete.add(key)
    for key in r.keys('*userid:' + text_type(user_id) + ':*'):
        keys_to_delete.add(key)
    for key in keys_to_delete:
        r.delete(key)
    keys_to_delete = set()
    for key in r_user.keys('*:user:' + text_type(old_email)):
        keys_to_delete.add(key)
    for key in keys_to_delete:
        r_user.delete(key)
예제 #4
0
def reset_user_dict(user_code,
                    filename,
                    user_id=None,
                    temp_user_id=None,
                    force=False):
    #logmessage("reset_user_dict called with " + str(user_code) + " and " + str(filename))
    if force:
        the_user_id = None
    else:
        if user_id is None and temp_user_id is None:
            if current_user.is_authenticated and not current_user.is_anonymous:
                user_type = 'user'
                the_user_id = current_user.id
            else:
                user_type = 'tempuser'
                the_user_id = session.get('tempuser', None)
        elif user_id is not None:
            user_type = 'user'
            the_user_id = user_id
        else:
            user_type = 'tempuser'
            the_user_id = temp_user_id
    if the_user_id is None:
        UserDictKeys.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        do_delete = True
    else:
        if user_type == 'user':
            UserDictKeys.query.filter_by(key=user_code,
                                         filename=filename,
                                         user_id=the_user_id).delete()
        else:
            UserDictKeys.query.filter_by(key=user_code,
                                         filename=filename,
                                         temp_user_id=the_user_id).delete()
        db.session.commit()
        existing_user_dict_key = UserDictKeys.query.filter_by(
            key=user_code, filename=filename).first()
        if not existing_user_dict_key:
            do_delete = True
        else:
            do_delete = False
    if do_delete:
        UserDict.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        files_to_delete = list()
        for speaklist in SpeakList.query.filter_by(key=user_code,
                                                   filename=filename).all():
            if speaklist.upload is not None:
                files_to_delete.append(speaklist.upload)
        SpeakList.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        for upload in Uploads.query.filter_by(key=user_code,
                                              yamlfile=filename,
                                              persistent=False).all():
            files_to_delete.append(upload.indexno)
        Uploads.query.filter_by(key=user_code,
                                yamlfile=filename,
                                persistent=False).delete()
        db.session.commit()
        ChatLog.query.filter_by(key=user_code, filename=filename).delete()
        db.session.commit()
        for short_code_item in Shortener.query.filter_by(
                uid=user_code, filename=filename).all():
            for email in Email.query.filter_by(
                    short=short_code_item.short).all():
                for attachment in EmailAttachment.query.filter_by(
                        email_id=email.id).all():
                    files_to_delete.append(attachment.upload)
        Shortener.query.filter_by(uid=user_code, filename=filename).delete()
        db.session.commit()
        for file_number in files_to_delete:
            the_file = SavedFile(file_number)
            the_file.delete()
    return