Fixed server argument max-username-length not working (#506)

This commit is contained in:
powerjungle 2022-02-12 17:05:36 +01:00 committed by GitHub
parent be854973aa
commit 619dc3abd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 4 deletions

View File

@ -125,7 +125,7 @@ class SyncFactory(Factory):
def addWatcher(self, watcherProtocol, username, roomName): def addWatcher(self, watcherProtocol, username, roomName):
roomName = truncateText(roomName, constants.MAX_ROOM_NAME_LENGTH) roomName = truncateText(roomName, constants.MAX_ROOM_NAME_LENGTH)
username = self._roomManager.findFreeUsername(username) username = self._roomManager.findFreeUsername(username, self.maxUsernameLength)
watcher = Watcher(self, watcherProtocol, username) watcher = Watcher(self, watcherProtocol, username)
self.setWatcherRoom(watcher, roomName, asJoin=True) self.setWatcherRoom(watcher, roomName, asJoin=True)
@ -488,8 +488,8 @@ class RoomManager(object):
self._roomsDbHandle.deleteRoom(room.getName()) self._roomsDbHandle.deleteRoom(room.getName())
del self._rooms[room.getName()] del self._rooms[room.getName()]
def findFreeUsername(self, username): def findFreeUsername(self, username, maxUsernameLength=constants.MAX_USERNAME_LENGTH):
username = truncateText(username, constants.MAX_USERNAME_LENGTH) username = truncateText(username, maxUsernameLength)
allnames = [] allnames = []
for room in self._rooms.values(): for room in self._rooms.values():
for watcher in room.getWatchers(): for watcher in room.getWatchers():

View File

@ -232,8 +232,9 @@ def truncateText(unicodeText, maxLength):
unicodeText = unicodeText.decode('utf-8') unicodeText = unicodeText.decode('utf-8')
except: except:
pass pass
try: try:
return(str(unicodeText.encode("utf-8"), "utf-8", errors="ignore")[:maxLength]) return str(unicodeText.encode("utf-8"), "utf-8", errors="ignore")[:maxLength]
except: except:
pass pass
return "" return ""