[Mailman3-dev] Problem with the schema

Ian Eiloart iane at sussex.ac.uk
Wed Mar 30 17:08:09 CEST 2005

--On March 29, 2005 22:33:14 -0500 Barry Warsaw <barry at python.org> wrote:

> I was working on a method to delete mailing lists and I realized that
> our schema as currently designed doesn't support it.
> Think about Rosters.  In order to support composition of mailing lists,
> Anyway, I'm not sure what we should do, so suggestions are welcome!
> -Barry


Sounds to me like you're thinking that a roster is a property of a mailing 
list. That must be incorrect, it's the situation that you want to get away 

At our site, we're likely to have more rosters than mailing lists. If 
you're using a relational database for this stuff, then the rosters will 
belong in one table:

ROSTERS = rostername | userid | etc...

lists will belong in another:

LISTS = listname | listdomain | archived | disabled | etc...

Another table will have ACLs for rosters:

ACLS = rostername | listname | listdomain | owner | moderator | recipient | 
poster | etc...

Now, it may be that you want to have some special rosters that exist ONLY 
for specific lists. For example, when creating a list FOO in domain BAR, 
you might want to create a roster FOO at BAR_recipients for the default 
recipient list. you might also want _owners, _moderators, _poster etc. I'd 
also want an _exceptions: for people who can't get off a roster like 
"staff", but want off of a particular list.

Removing orphan rosters would only be desirable if they belonged to that 
set of special rosters.

While I'm here, it would be nice to have pseudo-users for "posters", with 
wildcards like *@example.com to allow all local users to post to a list.

This scheme would allow you to delete lists without worrying about losing 
rosters, but maintain 2.x functionality for those that don't care about 
rosters. You'd delete a list by deleting it's one entry in the LISTS table, 
all related entries in the ACLS table, and all the special rosters. You 
could disable a list by flagging it as disabled, or (better) setting a 
disabled date in the past. Most admins would want to disable a list for a 
while before deleting it.

Ian Eiloart
Servers Team
Sussex University ITS

More information about the Mailman3-Dev mailing list