[sysadmin-bin] Do not remove @gnome.org alias right away after membership expiration, enable a 3 months grace perio
- From: Andrea Veri <averi src gnome org>
- To: gnome-sysadmin gnome org,commits-list gnome org
- Subject: [sysadmin-bin] Do not remove @gnome.org alias right away after membership expiration, enable a 3 months grace perio
- Date: Mon, 21 Feb 2022 11:35:48 +0000 (UTC)
commit 11ae0417ec87de3a5d1735c4595443c99cb0e9d6
Author: Andrea Veri <averi redhat com>
Date: Mon Feb 21 12:32:53 2022 +0100
Do not remove @gnome.org alias right away after membership expiration, enable a 3
months grace period.
membership/foundation-operations.py | 39 ++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
---
diff --git a/membership/foundation-operations.py b/membership/foundation-operations.py
index a021ae9..ffb6213 100755
--- a/membership/foundation-operations.py
+++ b/membership/foundation-operations.py
@@ -73,6 +73,23 @@ def send_renewal_emails():
elif last_renewed_on_attr == today:
send_form_letters(renewal_form_letter, mail_attr, common_name_attr)
+def cleanup_mailgrace():
+ today = dt.date.today()
+
+ gracemails = glu.get_uids_from_group('mailgrace')
+
+ import dateutil.relativedelta as relativedelta
+ delta_3m = relativedelta.relativedelta(months=3)
+
+ for member in gracemails:
+ ldap_fields = glu.get_attributes_from_ldap(member, 'LastRenewedOn', 'mail', 'cn')
+ last_renewed_on_attr = ldap_fields[1].decode('utf-8')
+ last_renewed_on = dt.date(int(last_renewed_on_attr.split('-')[0]),
int(last_renewed_on_attr.split('-')[1]), int(last_renewed_on_attr.split('-')[2]))
+ mail_attr = ldap_fields[2].decode('utf-8')
+ common_name_attr = ldap_fields[3].decode('utf-8')
+ if today == (last_renewed_on + delta_3m):
+ send_form_letters(alias_decomm, mail_attr, common_name_attr, last_renewed_on_attr)
+ glu.remove_user_from_ldap_group(member, 'mailgrace')
def remove_expired_memberships_from_foundation():
today = dt.date.today()
@@ -97,6 +114,7 @@ def remove_expired_memberships_from_foundation():
elif (today - delta_2y) == last_renewed_on:
print(f"Removing { member } from the foundation LDAP group as the membership expired on {
last_renewed_on_attr }")
glu.remove_user_from_ldap_group(member, 'foundation')
+ glu.add_user_to_ldap_group(member, 'mailgrace')
send_form_letters(expired_membership_form_letter, mail_attr, common_name_attr,
last_renewed_on_attr)
if (last_renewed_on.year == (today - delta_2y).year) and (last_renewed_on.month == today.month) and
(today.day == 1):
@@ -149,7 +167,8 @@ def send_form_letters(form_letter, email, name, *args):
elif form_letter is renewal_form_letter:
msg = MIMEText(form_letter.safe_substitute(cn=name),
'plain', 'utf8')
- elif form_letter in (expired_membership_form_letter, close_to_expire_membership_form_letter):
+ elif form_letter in (expired_membership_form_letter, close_to_expire_membership_form_letter,
+ alias_decomm):
msg = MIMEText(form_letter.safe_substitute(cn=name,
last_renewed_on_date=args[0]), 'plain', 'utf8')
elif form_letter is renewals_to_foundation_list:
@@ -158,6 +177,8 @@ def send_form_letters(form_letter, email, name, *args):
if form_letter is renewals_to_foundation_list:
msg['Subject'] = "Memberships needing renewal (%s)" % year_month
+ elif form_letter is alias_decomm:
+ msg['Subject'] = "Your @gnome.org alias has been decommissioned"
else:
msg['Subject'] = "Your GNOME Foundation Membership"
msg['From'] = "GNOME Foundation Membership Committee <noreply gnome org>"
@@ -341,6 +362,21 @@ Additionally, please give a look at the Membership benefits:
https://wiki.gnome.org/MembershipCommittee/MembershipBenefits
+On a related note, we'd like you to remember your @gnome.org alias will also
+be decommisioned within 3 months from your membership expiration.
+
+Thanks,
+ The GNOME Membership and Elections Committee,
+ https://discourse.gnome.org/c/community/membership/338""")
+
+alias_decomm = string.Template("""
+Dear $cn,
+
+from our records it seems your GNOME Foundation Membership was last renewed
+3 months ago on $last_renewed_on_date (YYYY-MM-DD). As we previously communicated
+your @gnome.org alias has been decommissioned as a direct consequence of your interest
+in not being part of the GNOME Foundation anymore.
+
Thanks,
The GNOME Membership and Elections Committee,
https://discourse.gnome.org/c/community/membership/338""")
@@ -404,6 +440,7 @@ def main():
if options.remove_expired_foundation_members:
remove_expired_memberships_from_foundation()
+ cleanup_mailgrace()
if options.generate_membership_list:
generate_membership_list()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]