Exemplo n.º 1
0
def update_membership(base_users, list_name, add=False, dry_run=DRY_RUN):
    current_members = set(mailman.list_contents(list_name))
    print """Updating list "%s", which currently has %s users.""" % (
        list_name, len(current_members))
    if dry_run:
        print "(This is a dry run.)"

    users_to_maybe_remove = ESPUser.objects.filter(is_active=False)
    users_not_to_remove = ESPUser.objects.filter(is_active=True)
    users_to_remove = users_to_maybe_remove.exclude(
        email__in=users_not_to_remove.values('email'))
    members_to_remove = current_members & set(
        users_to_remove.values_list('email', flat=True))
    print "Removing %s users..." % len(members_to_remove),
    if not dry_run:
        out, err = mailman.remove_list_member(list_name, members_to_remove)
        if out:
            print "stdout:"
            print out
        if err:
            print "sterr:"
            print err
    print "removed."

    if add:
        users_to_maybe_add = base_users.filter(is_active=True)
        users_not_to_add = ESPUser.objects.filter(is_active=False)
        users_to_add = users_to_maybe_add.exclude(
            email__in=users_not_to_add.values('email'))
        print "Adding %s users..." % len(users_to_add),
        if not dry_run:
            out, err = mailman.add_list_members(list_name, users_to_add)
            if out:
                print "stdout:"
                print out
            if err:
                print "sterr:"
                print err
        print "added."
    else:
        print "User adding disabled."

    new_members = mailman.list_contents(list_name)
    print """List "%s" now contains %s users.""" % (list_name,
                                                    len(new_members))
    print
def update_membership(base_users, list_name, add=False, dry_run=DRY_RUN):
    current_members = set(mailman.list_contents(list_name))
    print """Updating list "%s", which currently has %s users.""" % (
        list_name, len(current_members))
    if dry_run:
        print "(This is a dry run.)"

    users_to_maybe_remove = ESPUser.objects.filter(is_active=False)
    users_not_to_remove = ESPUser.objects.filter(is_active=True)
    users_to_remove = users_to_maybe_remove.exclude(
        email__in=users_not_to_remove.values('email'))
    members_to_remove = current_members & set(
        users_to_remove.values_list('email', flat=True))
    print "Removing %s users..." % len(members_to_remove),
    if not dry_run:
        out, err = mailman.remove_list_member(list_name, members_to_remove)
        if out:
            print "stdout:"
            print out
        if err:
            print "sterr:"
            print err
    print "removed."

    if add:
        users_to_maybe_add = base_users.filter(is_active=True)
        users_not_to_add = ESPUser.objects.filter(is_active=False)
        users_to_add = users_to_maybe_add.exclude(
            email__in=users_not_to_add.values('email'))
        print "Adding %s users..." % len(users_to_add),
        if not dry_run:
            out, err = mailman.add_list_members(list_name, users_to_add)
            if out:
                print "stdout:"
                print out
            if err:
                print "sterr:"
                print err
        print "added."
    else:
        print "User adding disabled."

    new_members = mailman.list_contents(list_name)
    print """List "%s" now contains %s users.""" % (
        list_name, len(new_members))
    print
Exemplo n.º 3
0
 def clear_mailman_list(self, list_name):
     contents = list_contents(list_name)
     for address in contents:
         remove_list_member(list_name, address)