[Mailman-Developers] Mailman 3: some non member allowed to post on a mailing list
Étienne Loks
etienne.loks at iggdrasil.net
Sun Jan 10 07:37:39 EST 2016
Le 07/01/2016 00:20, Barry Warsaw a écrit :
> This is really what you want to read. There's a new 'nonmember' rule that
> checks for posting conditions described here:
>
> http://mailman.readthedocs.org/en/release-3.0/src/mailman/chains/docs/moderation.html#nonmembers
>
> "Members" are users or addresses subscribed to mailing lists, and every member
> has a role and a moderation_action. "Non-member" is a valid role. So the
> idea is that you "subscribe" a non-member to a mailing list and give them a
> moderation_action of 'accept'. Then their postings won't be held for
> approval.
Thanks for the explanation!
I have tried different things with the python client to achieve this but
with no results. I don't know if there are missing features in the
client or if I have misunderstood something.
For instance for known email:
========================================================================
client = Client('http://localhost:8001/3.0', 'restadmin', 'restpass')
my_list = client.get_list(ml_id)
# my_list.nonmembers is a list no "get_member" method
for nm in my_list.nonmembers:
if nm.email == email_to_add:
pass # no moderation_action
========================================================================
Or to "subscribe" an unknown email:
========================================================================
my_list.add_role('non-member', email_to_add)
# non-member / nonmember / etc. are not considered as valid roles
========================================================================
As a fallback I have tried to edit directly the database:
========================================================================
conn = sqlite3.connect(DB)
c = conn.cursor()
sql = """
UPDATE member set moderation_action=?
WHERE member.list_id=? and member.address_id = (
SELECT id from address where email=?)"""
c.execute(sql, [Action.accept.value, ml_id, email_to_add])
conn.commit()
========================================================================
But with no result.
Thanks for any help!
--
Étienne Loks
More information about the Mailman-Developers
mailing list