summaryrefslogtreecommitdiff
path: root/Mailman/SecurityManager.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/SecurityManager.py')
-rw-r--r--Mailman/SecurityManager.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/Mailman/SecurityManager.py b/Mailman/SecurityManager.py
index c8b460bc5..e08f702c7 100644
--- a/Mailman/SecurityManager.py
+++ b/Mailman/SecurityManager.py
@@ -29,7 +29,7 @@ class SecurityManager:
def ValidAdminPassword(self, pw):
if self.CheckSiteAdminPassword(pw):
- return 1
+ return 1
return ((type(pw) == types.StringType) and
(crypt.crypt(pw, self.password) == self.password))
@@ -60,3 +60,13 @@ class SecurityManager:
self.passwords[addr] = newpw
self.Save()
+ def ExtractApproval(self, msg):
+ """True if message has valid administrator approval.
+
+ Approval line is always stripped from message as a side effect."""
+
+ p = msg.getheader('approved')
+ if p == None:
+ return 0
+ msg.delitem('approved') # Mustn't deliver this line!!
+ return self.ValidAdminPassword(p)