Example #1
0
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)
Example #3
0
 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)