ignore subscription errors when sub/unsubbing for expiring members
continuous-integration/drone/pr Build is failing Details

This commit is contained in:
Rio6 2022-05-16 21:52:55 -04:00
parent b939eab1e1
commit 01046016fe
1 changed files with 10 additions and 4 deletions

View File

@ -4,8 +4,8 @@ from zope import component
from .utils import authz_restrict_to_staff, authz_restrict_to_syscom, \
user_is_in_group, requires_authentication_no_realm, \
create_streaming_response, development_only, is_truthy
from ceo_common.errors import BadRequest
from ceo_common.interfaces import ILDAPService
from ceo_common.errors import BadRequest, UserAlreadySubscribedError, UserNotSubscribedError
from ceo_common.interfaces import ILDAPService, IConfig
from ceod.transactions.members import (
AddMemberTransaction,
ModifyMemberTransaction,
@ -99,7 +99,10 @@ def renew_user(username: str):
def unexpire(user):
if user.shadowExpire:
user.set_expired(False)
try:
user.subscribe_to_mailing_list(member_list)
except UserAlreadySubscribedError:
pass
if body.get('terms'):
user.add_terms(body['terms'])
@ -144,6 +147,9 @@ def expire_users():
if not dry_run:
for member in members:
member.set_expired(True)
try:
member.unsubscribe_from_mailing_list(member_list)
except UserNotSubscribedError:
pass
return json.jsonify([member.uid for member in members])