Managing Owners and Moderators
The mailman admins
command allows a site administrator to add and/or
delete owners and moderators of a mailing list.
>>> from mailman.testing.documentation import cli
>>> command = cli('mailman.commands.cli_admins.admins')
Usage
Here is the complete usage for the command.
>>> command('mailman admins --help')
Usage: admins [OPTIONS] LISTSPEC
Add and/or delete owners and moderators of a list.
Options:
-a, --add TEXT User to add with the given role. This may be an
email address or, if quoted, any display name
and email address parseable by
email.utils.parseaddr. E.g., 'Jane Doe
<jane@example.com>'. May be repeated to add
multiple users.
-d, --delete TEXT Email address of the user to be removed from the
given role. May be repeated to delete multiple
users.
-r, --role [owner|moderator] The role to add/delete. This may be 'owner' or
'moderator'. If not given, then 'owner' role is
assumed.
--help Show this message and exit.
Examples
You can add owners or moderators, optionally with a display name, to a mailing list from the command line.
>>> from mailman.app.lifecycle import create_list
>>> bee = create_list('bee@example.com')
>>> command('mailman admins --add "Anne <aperson@example.com>" '
... 'bee.example.com')
>>> from mailman.testing.documentation import dump_list
>>> from operator import attrgetter
>>> dump_list(bee.owners.addresses, key=attrgetter('email'))
Anne <aperson@example.com>
>>> command('mailman admins --add bperson@example.com '
... '--role moderator bee.example.com')
>>> dump_list(bee.moderators.addresses, key=attrgetter('email'))
bperson@example.com
You can delete owners or moderators from a mailing list from the command line.
>>> command('mailman admins --delete aperson@example.com bee.example.com')
>>> dump_list(bee.owners.addresses, key=attrgetter('email'))
*Empty*
You can add and delete in one command.
>>> command('mailman admins --delete bperson@example.com '
... '--add cperson@example.com --role moderator bee.example.com')
>>> dump_list(bee.moderators.addresses, key=attrgetter('email'))
cperson@example.com
Adding addesses which already have that role just results in a warning being printed.
>>> command('mailman admins --add cperson@example.com '
... '--role moderator bee.example.com')
cperson@example.com is already a moderator of bee@example.com
Likewise, removing an address which doesn’t have that role just results in a warning being printed.
>>> command('mailman admins --delete aperson@example.com bee.example.com')
aperson@example.com is not a owner of bee@example.com