def test_address_invalid_client():
    # Empty Address
    Environment.prefs['filter_networks'] = '10.20.30.40'

    assert Filters.is_valid_address({'address': None}) is False

    # Malformed Address
    Environment.prefs['filter_networks'] = '10.20.30.40'

    assert Filters.is_valid_address({'address': '10.20.30'}) is False
def test_address_invalid_filter():
    # Empty Filter
    Environment.prefs['filter_networks'] = ','

    assert Filters.is_valid_address({'address': '10.20.30.40'}) is False

    # Malformed Filter
    Environment.prefs['filter_networks'] = '10.20.30/24'

    assert Filters.is_valid_address({'address': '10.20.30.40'}) is False
def test_address_basic():
    # Filter Address
    Environment.prefs['filter_networks'] = '10.20.30.40'

    assert Filters.is_valid_address({'address': '10.20.30.40'}) is True

    # Filter Subnet
    Environment.prefs['filter_networks'] = '10.20.30.0/24'

    assert Filters.is_valid_address({'address': '10.20.30.40'}) is True
Пример #4
0
def test_address_invalid_filter():
    # Empty Filter
    Environment.prefs["filter_networks"] = ","

    assert Filters.is_valid_address({"address": "10.20.30.40"}) is False

    # Malformed Filter
    Environment.prefs["filter_networks"] = "10.20.30/24"

    assert Filters.is_valid_address({"address": "10.20.30.40"}) is False
Пример #5
0
def test_address_invalid_client():
    # Empty Address
    Environment.prefs["filter_networks"] = "10.20.30.40"

    assert Filters.is_valid_address({"address": None}) is False

    # Malformed Address
    Environment.prefs["filter_networks"] = "10.20.30.40"

    assert Filters.is_valid_address({"address": "10.20.30"}) is False
Пример #6
0
def test_address_basic():
    # Filter Address
    Environment.prefs["filter_networks"] = "10.20.30.40"

    assert Filters.is_valid_address({"address": "10.20.30.40"}) is True

    # Filter Subnet
    Environment.prefs["filter_networks"] = "10.20.30.0/24"

    assert Filters.is_valid_address({"address": "10.20.30.40"}) is True
Пример #7
0
    def match(result, client, player):
        # Apply global filters
        if not Filters.is_valid_client(player) or\
           not Filters.is_valid_address(client):
            # Client didn't pass filters, update `account` attribute and return
            result['account'] = None

            return True, result

        # Find matching `ClientRule`
        address = client['address'] if client else None

        rule = (ClientRule
            .select()
            .where(
                (ClientRule.key == player['key']) |
                (ClientRule.key == '*') |
                (ClientRule.key == None),

                (ClientRule.name == player['title']) |
                (ClientRule.name == '*') |
                (ClientRule.name == None),

                (ClientRule.address == address) |
                (ClientRule.address == '*') |
                (ClientRule.address == None)
            )
            .order_by(
                ClientRule.priority.asc()
            )
            .first()
        )

        log.debug('Activity matched against rule: %r', rule)

        if rule:
            # Process rule
            if rule.account_id is not None:
                result['account'] = rule.account_id
            else:
                return True, result
        else:
            result['account'] = None

        return False, result