From 5bfc672977acdc65ae330b20ef9986dd016a4826 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 9 Jan 2020 12:34:09 +0000 Subject: [PATCH] accounts: Add CLI command to list all email addresses This is used to automatically unsubscribe users from the announce mailing list Signed-off-by: Michael Tremer --- src/backend/accounts.py | 10 ++++++++++ src/backend/base.py | 1 + 2 files changed, 11 insertions(+) diff --git a/src/backend/accounts.py b/src/backend/accounts.py index 46dc9887..451d0a1a 100644 --- a/src/backend/accounts.py +++ b/src/backend/accounts.py @@ -619,6 +619,16 @@ class Accounts(Object): return ret + async def get_all_emails(self): + # Returns all email addresses + for dn, attrs in self._query("(objectClass=person)", attrlist=("mail",)): + mails = attrs.get("mail", None) + if not mails: + continue + + for mail in mails: + print(mail.decode()) + class Account(LDAPObject): def __str__(self): diff --git a/src/backend/base.py b/src/backend/base.py index 6bda25ab..0fdf2c43 100644 --- a/src/backend/base.py +++ b/src/backend/base.py @@ -100,6 +100,7 @@ class Backend(object): "check-mirrors" : self.mirrors.check_all, "check-spam" : self.accounts.check_spam, "cleanup" : self.cleanup, + "get-all-emails" : self.accounts.get_all_emails, "launch-campaigns" : self.campaigns.launch_manually, "run-campaigns" : self.campaigns.run, "scan-files" : self.releases.scan_files, -- 2.47.2