diff options
| author | Aurélien Bompard | 2015-09-21 00:48:20 +0200 |
|---|---|---|
| committer | Barry Warsaw | 2016-05-04 21:05:49 -0500 |
| commit | 02bc8121d5eb027307c6d0cf716db17db40071be (patch) | |
| tree | 7ca352b7de66655434a836d213b01f9e56322e59 /src/mailman/model/user.py | |
| parent | 297abdc34b0fb7f1785465f5323ab374ec82f678 (diff) | |
| download | mailman-02bc8121d5eb027307c6d0cf716db17db40071be.tar.gz mailman-02bc8121d5eb027307c6d0cf716db17db40071be.tar.zst mailman-02bc8121d5eb027307c6d0cf716db17db40071be.zip | |
Diffstat (limited to 'src/mailman/model/user.py')
| -rw-r--r-- | src/mailman/model/user.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mailman/model/user.py b/src/mailman/model/user.py index 3d02b2777..783d7f7b7 100644 --- a/src/mailman/model/user.py +++ b/src/mailman/model/user.py @@ -189,13 +189,14 @@ class User(Model): # Merge memberships. other_members = store.query(Member).filter( Member.user_id == user.id) - # (only import memberships of lists I'm not subscribed to yet) subscribed_lists = [ m.list_id for m in self.memberships.members ] - if subscribed_lists: - other_members = other_members.filter( - not_(Member.list_id.in_(subscribed_lists))) for member in other_members: - member.user_id = self.id + # Only import memberships of lists I'm not subscribed to yet, + # delete the rest. + if member.list_id not in subscribed_lists: + member.user_id = self.id + else: + store.delete(member) # Merge the user preferences self.preferences.absorb(user.preferences) # Merge display_name, password and is_server_owner attributes. |
