From b939eab1e1fd320e4a515a21cedc8a52b7e71d70 Mon Sep 17 00:00:00 2001 From: Rio Liu Date: Mon, 16 May 2022 21:15:08 -0400 Subject: [PATCH] unsubscribe from csc general when shadow expiring member, and resubscribe when renewed --- ceod/api/members.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ceod/api/members.py b/ceod/api/members.py index 7013782..1398996 100644 --- a/ceod/api/members.py +++ b/ceod/api/members.py @@ -92,14 +92,22 @@ def renew_user(username: str): g.need_admin_creds = True ldap_srv = component.getUtility(ILDAPService) + cfg = component.getUtility(IConfig) user = ldap_srv.get_user(username) + member_list = cfg.get('mailman3_new_member_list') + + def unexpire(user): + if user.shadowExpire: + user.set_expired(False) + user.subscribe_to_mailing_list(member_list) + if body.get('terms'): user.add_terms(body['terms']) - user.set_expired(False) + unexpire(user) return {'terms_added': body['terms']} elif body.get('non_member_terms'): user.add_non_member_terms(body['non_member_terms']) - user.set_expired(False) + unexpire(user) return {'non_member_terms_added': body['non_member_terms']} else: raise BadRequest('Must specify either terms or non-member terms') @@ -129,10 +137,13 @@ def expire_users(): dry_run = is_truthy(request.args.get('dry_run', 'false')) ldap_srv = component.getUtility(ILDAPService) + cfg = component.getUtility(IConfig) members = ldap_srv.get_expiring_users() + member_list = cfg.get('mailman3_new_member_list') if not dry_run: for member in members: member.set_expired(True) + member.unsubscribe_from_mailing_list(member_list) return json.jsonify([member.uid for member in members])