]> git.ipfire.org Git - ipfire.org.git/commitdiff
accounts: Add CLI command to list all email addresses
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 9 Jan 2020 12:34:09 +0000 (12:34 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 9 Jan 2020 12:34:09 +0000 (12:34 +0000)
This is used to automatically unsubscribe users from the announce mailing list

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py
src/backend/base.py

index 46dc98875aa154e7e6c15727cf3b14db830faa61..451d0a1a7b7a7d9f895f0901d960a25d011d49f8 100644 (file)
@@ -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):
index 6bda25abd9821e4d7ed09cdc43064b765e99afc6..0fdf2c436b219f53d465587eb1660eea309ae61c 100644 (file)
@@ -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,