diff options
| -rw-r--r-- | Mailman/SecurityManager.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Mailman/SecurityManager.py b/Mailman/SecurityManager.py index 4a9bd5e4e..c0a14e534 100644 --- a/Mailman/SecurityManager.py +++ b/Mailman/SecurityManager.py @@ -71,16 +71,20 @@ class SecurityManager: """True if password is valid for site, list admin, or specific user.""" if self.ValidAdminPassword(pw): return 1 + # We need to obtain the right letter-case translated version, if any: got = self.members.get(string.lower(user), None) if got == None: got = self.digest_members.get(string.lower(user), None) - if got == 0: # Found, and case translation unneeded: - normalized = user - elif got == None: # Not found in either members dict: + if got == None: + # Not found in either members dict, resort to expensive FindUser. normalized = self.FindUser(user) - else: # Found, use case translation version: + elif type(got) == types.StringType: + # Found case translated version, use it: normalized = got + else: # Found, no case translation needed: + normalized = user + try: # XXX Huh?? Why eliminate password case info?? klm # 11/23/98. if (string.lower(pw) <> string.lower(self.passwords[normalized])): |
