diff options
Diffstat (limited to 'src/mailman/interfaces')
| -rw-r--r-- | src/mailman/interfaces/preferences.py | 6 | ||||
| -rw-r--r-- | src/mailman/interfaces/user.py | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/mailman/interfaces/preferences.py b/src/mailman/interfaces/preferences.py index 4b5b490cb..84f85820a 100644 --- a/src/mailman/interfaces/preferences.py +++ b/src/mailman/interfaces/preferences.py @@ -68,3 +68,9 @@ class IPreferences(Interface): which means that no preference is specified. XXX I'm not sure this is the right place to put this.""") + + def absorb(preferences): + """Merge these preferences, and then delete them. + + Only this instance's unset preferences (None/NULL) will be imported. + """ diff --git a/src/mailman/interfaces/user.py b/src/mailman/interfaces/user.py index f1932fd7f..bdeccce3f 100644 --- a/src/mailman/interfaces/user.py +++ b/src/mailman/interfaces/user.py @@ -109,3 +109,11 @@ class IUser(Interface): preferences = Attribute( """This user's preferences.""") + + def absorb(user): + """Merge this user's attributes and memberships, and then delete it. + + In case of conflict, the current user's properties are preserved. + If an IAddress is given, the merge will be performed on the addresses' + linked user. + """ |
