From feb85382af15e847cccc41e196b201e9eee88862 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Sun, 14 Sep 2003 07:05:41 +0000 Subject: [PATCH] Made usernames case-insensitive. --- src/ircdb.py | 13 +++++++------ test/test_ircdb.py | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ircdb.py b/src/ircdb.py index 19de146dd..e24faf0aa 100644 --- a/src/ircdb.py +++ b/src/ircdb.py @@ -376,15 +376,16 @@ class UsersDB(object): else: raise ValueError, 'Ids %r matched.' % ids else: # Not a hostmask, must be a name. + s = s.lower() try: return self._nameCache[s] except KeyError: for (id, user) in enumerate(self.users): if user is None: continue - if s == user.name: + if s == user.name.lower(): self._nameCache[s] = id - self._nameCache.setdefault(id, sets.Set()).add(s) + self._nameCache[id] = s return id else: raise KeyError, s @@ -429,8 +430,7 @@ class UsersDB(object): except KeyError: continue if id in self._nameCache: - for name in self._nameCache[id]: - del self._nameCache[name] + del self._nameCache[self._nameCache[id]] del self._nameCache[id] if id in self._hostmaskCache: for hostmask in self._hostmaskCache[id]: @@ -444,8 +444,9 @@ class UsersDB(object): if not 0 <= id < len(self.users) or self.users[id] is None: raise KeyError, id self.users[id] = None - for name in self._nameCache.get(id, []): - del self._nameCache[name] + if id in self._nameCache: + del self._nameCache[self._nameCache[id]] + del self._nameCache[id] for hostmask in self._hostmaskCache.get(id, []): del self._hostmaskCache[hostmask] diff --git a/test/test_ircdb.py b/test/test_ircdb.py index efaa08fef..369152d80 100644 --- a/test/test_ircdb.py +++ b/test/test_ircdb.py @@ -275,6 +275,7 @@ class UsersDBTestCase(unittest.TestCase): u.name = 'foo' self.users.setUser(id, u) self.assertEqual(self.users.getUser('foo'), u) + self.assertEqual(self.users.getUser('FOO'), u) self.assertEqual(self.users.getUser(hostmask), u) self.assertEqual(self.users.getUser(banmask), u) # The UsersDB shouldn't allow users to be added whose hostmasks