def validateUserRoomPwd(password, isRetype=False): if not password: if isRetype: errorID = CHANNEL_ERROR_ID.PASSWORD_EMPTY else: errorID = CHANNEL_ERROR_ID.RETYPE_EMPTY return ('', ClientChannelError(errorID)) else: try: password = ResourcePrep.prepare(password) except XmppStringPrepError: if isRetype: errorID = CHANNEL_ERROR_ID.PASSWORD_INVALID else: errorID = CHANNEL_ERROR_ID.RETYPE_INVALID return ('', ClientChannelError(errorID)) length = len(password) return ('', ClientIntLimitError( LIMIT_ERROR_ID.PWD_INVALID_LENGTH, CHANNEL_LIMIT.PWD_MIN_CHARS_COUNT, CHANNEL_LIMIT.PWD_MAX_CHARS_COUNT)) if not isRetype and ( CHANNEL_LIMIT.PWD_MIN_CHARS_COUNT > length or CHANNEL_LIMIT.PWD_MAX_CHARS_COUNT < length) else ( password.encode('utf-8'), None)
def validateUserRoomName(name): if not name: return ('', ClientChannelError(CHANNEL_ERROR_ID.NAME_EMPTY)) else: try: name = ResourcePrep.prepare(name) except XmppStringPrepError: return ('', ClientChannelError(CHANNEL_ERROR_ID.NAME_INVALID, name)) length = len(name) return (name.encode('utf-8'), ClientIntLimitError(LIMIT_ERROR_ID.CHANNEL_INVALID_LENGTH, CHANNEL_LIMIT.NAME_MAX_CHARS_COUNT, CHANNEL_LIMIT.NAME_MIN_CHARS_COUNT)) if CHANNEL_LIMIT.NAME_MIN_CHARS_COUNT > length or CHANNEL_LIMIT.NAME_MAX_CHARS_COUNT < length else (name.encode('utf-8'), None)
def createRoom(self, name, password='', initResult=ACTION_RESULT.SHOW_ROOM): roomJID = jid_entity.makeUserRoomJID() if not roomJID: return (False, ClientActionError(CLIENT_ACTION_ID.CREATE_USER_ROOM, CLIENT_ERROR_ID.NOT_SUPPORTED)) else: exists = self.getChannelByName(name) if exists is not None: return (False, ClientChannelError( CHANNEL_ERROR_ID.NAME_ALREADY_EXISTS, name)) if roomJID not in self.__actions: from gui.shared.utils import getPlayerName name = '{0} ({1})'.format(name, getPlayerName()) action = CreateAction(roomJID, name, password, initResult) self.__actions[roomJID] = action action.start() else: return (False, ClientActionError(CLIENT_ACTION_ID.CREATE_USER_ROOM, CLIENT_ERROR_ID.LOCKED)) return (True, None)
def validateUserRoomPwdPair(password, retype): password, error = validateUserRoomPwd(password, isRetype=False) if error is not None: return ('', error) else: retype, error = validateUserRoomPwd(retype, isRetype=True) if error is not None: return ('', error) return ('', ClientChannelError(CHANNEL_ERROR_ID.PASSWORDS_NOT_EQUALS)) if password != retype else (password, None)