diff options
| author | Barry Warsaw | 2007-06-09 15:20:32 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2007-06-09 15:20:32 -0400 |
| commit | 3231fd628f6eea30bd6e2be56eb419ed0008d954 (patch) | |
| tree | 176f80a7b4f72c410e30ab9ba3e3fe2deb1bb1fe /Mailman/interfaces/usermanager.py | |
| parent | e5c04e2a93a58d799dd3940a7935853eb1f2e3e4 (diff) | |
| download | mailman-3231fd628f6eea30bd6e2be56eb419ed0008d954.tar.gz mailman-3231fd628f6eea30bd6e2be56eb419ed0008d954.tar.zst mailman-3231fd628f6eea30bd6e2be56eb419ed0008d954.zip | |
Implement the new, simplified membership model. Rosters and RosterSets as
they were previously known are now gone. Rosters, rather than being a
database entity that collects users, is now just a filter on the member
database. This way, we can use generic rosters to search for regular members,
digest members, owners, or moderators. More advanced rosters can do all kinds
of other membership queries. But rosters no longer need to be a database
entity.
Users have a name, password, optional preferences, and a set of addresses, but
users are not subscribed to mailing lists.
Addresses have the email address, some verification information, and optional
preferences.
Members tie an address to a mailing list, through a role, with optional
preferences.
Other changes here include:
MailList.fqdn_listname() moved to the MailingList model entity.
Added MemberRole enum and SystemDefaultPreferences to Mailman.constants.
Profiles are renamed to Preferences (same with the interface), but the files
are not yet moved. This happens later.
We mostly don't need has_*() relationships on the entity classes, because we
generally don't need the reverse relationship. Use belongs_to() because that
creates the foreign key, even though the wording seems counter intuitive.
IAddress.subscribe() added.
Tell Elixir to use shortnames for all tables.
Remove the OldStyleMembership fields from MailingList.
Remove all the interface elements and database fields that talk about rosters
and rostersets.
Convert Version entity to has_field().
Diffstat (limited to 'Mailman/interfaces/usermanager.py')
| -rw-r--r-- | Mailman/interfaces/usermanager.py | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/Mailman/interfaces/usermanager.py b/Mailman/interfaces/usermanager.py index 302fe9b60..38dd06dfa 100644 --- a/Mailman/interfaces/usermanager.py +++ b/Mailman/interfaces/usermanager.py @@ -33,27 +33,6 @@ class IUserManager(Interface): IUsers in all IRosters. """ - def create_roster(name): - """Create and return the named IRoster. - - Raises RosterExistsError if the named roster already exists. - """ - - def get_roster(name): - """Return the named IRoster. - - Raises NoSuchRosterError if the named roster doesnot yet exist. - """ - - def delete_roster(name): - """Delete the named IRoster. - - Raises NoSuchRosterError if the named roster doesnot yet exist. - """ - - rosters = Attribute( - """An iterator over all IRosters managed by this user manager.""") - def create_user(): """Create and return an IUser.""" @@ -68,15 +47,3 @@ class IUserManager(Interface): users = Attribute( """An iterator over all the IUsers managed by this user manager.""") - - def create_rosterset(): - """Create and return a new IRosterSet. - - IRosterSets manage groups of IRosters. - """ - - def delete_rosterset(rosterset): - """Delete the given IRosterSet.""" - - def get_rosterset(serial): - """Return the IRosterSet that matches the serial number, or None.""" |
