On 11/5/24 11:09, Jose Bernal via Mailman-users wrote:
I've got a list member showing up twice in a list (same email address).
Can't use the GUI to remove the member from this list (get a 503 error)
Screenshots attached, underlying database query reveals no duplicates.
Wondering how this is possible or where else I should be looking to resolve
this duplicate before I simply remove their entry from the members table
altogether.
I'm not sure how this could have happened, I need more info for that,
but to deal with this use `mailman shell` as in
```
$ mailman shell -l l...@example.com
Welcome to the GNU Mailman shell
Use commit() to commit changes.
Use abort() to discard changes since the last commit.
Exit with ctrl+D does an implicit commit() but exit() does not.
The variable 'm' is the l...@example.com mailing list
>>> x = m.memberships('u...@example.com')
This should set x to a list of that users memberships You can then
examine x[0] and x[1] to determine which to delete. e.g.
>>> dir(x[0])
['__abstract__', '__class__', '__delattr__', '__dict__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getstate__', '__gt__', '__hash__', '__implemented__', '__init__',
'__init_subclass__', '__le__', '__lt__', '__mapper__', '__module__',
'__ne__', '__new__', '__providedBy__', '__provides__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__table__', '__tablename__', '__weakref__',
'_address', '_lookup', '_mailing_list', '_member_id', '_reset',
'_sa_class_manager', '_sa_instance_state', '_sa_registry', '_user',
'acknowledge_posts', 'address', 'address_id', 'bounce_score',
'delivery_mode', 'delivery_status', 'display_name', 'id',
'last_bounce_received', 'last_warning_sent', 'list_id', 'mailing_list',
'member_id', 'metadata', 'moderation_action', 'preferences',
'preferences_id', 'preferred_language', 'receive_list_copy',
'receive_own_postings', 'registry', 'role', 'subscriber',
'subscription_mode', 'total_warnings_sent', 'unsubscribe', 'user',
'user_id']
This gives the list of attributes which can be examined with, e.g.
>>> x[0].delivery_mode
<DeliveryMode.regular: 1>
You can then remove the one you don't want, e.g.
>>> x[0].unsubscribe()
>>> commit()
```
Just to be sure, you should ensure that x[0].member_id and
x[1].member_id are different. These are the _member_id column in the
member table in the database.
--
Mark Sapiro <m...@msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
_______________________________________________
Mailman-users mailing list -- mailman-users@mailman3.org
To unsubscribe send an email to mailman-users-le...@mailman3.org
https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
Archived at:
https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message/6MJJBFEA5BDWEJ5KP7HQD5RNQG45FYGN/
This message sent to arch...@mail-archive.com