[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
>

Hi,

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 
from.

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