mirror of
				https://github.com/XRPLF/clio.git
				synced 2025-11-04 11:55:51 +00:00 
			
		
		
		
	fix: no restriction on type field (#1644)
'type' should not matter if 'full' or 'accounts' is false. Relax the restriction for 'type'
This commit is contained in:
		@@ -1287,7 +1287,11 @@ isAdminCmd(std::string const& method, boost::json::object const& request)
 | 
			
		||||
        // https://github.com/XRPLF/rippled/issues/5119
 | 
			
		||||
        auto const isFieldSet = [&jv](auto const field) { return jv.isMember(field) and jv[field].asBool(); };
 | 
			
		||||
 | 
			
		||||
        if (isFieldSet(JS(full)) or isFieldSet(JS(accounts)) or isFieldSet(JS(type)))
 | 
			
		||||
        // According to doc
 | 
			
		||||
        // https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger,
 | 
			
		||||
        // full/accounts/type are admin only, but type only works when full/accounts are set, so we don't need to check
 | 
			
		||||
        // type.
 | 
			
		||||
        if (isFieldSet(JS(full)) or isFieldSet(JS(accounts)))
 | 
			
		||||
            return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -560,6 +560,7 @@ generateTestValuesForParametersTest()
 | 
			
		||||
        {"featureVetoedIsStr", "feature", R"({"vetoed": "String"})", true},
 | 
			
		||||
 | 
			
		||||
        {"ledger", "ledger", R"({})", false},
 | 
			
		||||
        {"ledgerWithType", "ledger", R"({"type": "fee"})", false},
 | 
			
		||||
        {"ledgerFullTrue", "ledger", R"({"full": true})", true},
 | 
			
		||||
        {"ledgerFullFalse", "ledger", R"({"full": false})", false},
 | 
			
		||||
        {"ledgerFullIsStr", "ledger", R"({"full": "String"})", true},
 | 
			
		||||
@@ -574,25 +575,11 @@ generateTestValuesForParametersTest()
 | 
			
		||||
        {"ledgerFullIsObject", "ledger", R"({"full": {"key": 1}})", true},
 | 
			
		||||
        {"ledgerFullIsEmptyObject", "ledger", R"({"full": {}})", false},
 | 
			
		||||
 | 
			
		||||
        {"ledgerTypeTrue", "ledger", R"({"type": true})", true},
 | 
			
		||||
        {"ledgerTypeFalse", "ledger", R"({"type": false})", false},
 | 
			
		||||
        {"ledgerTypeIsStr", "ledger", R"({"type": "String"})", true},
 | 
			
		||||
        {"ledgerTypeIsEmptyStr", "ledger", R"({"type": ""})", false},
 | 
			
		||||
        {"ledgerTypeIsNumber1", "ledger", R"({"type": 1})", true},
 | 
			
		||||
        {"ledgerTypeIsNumber0", "ledger", R"({"type": 0})", false},
 | 
			
		||||
        {"ledgerTypeIsNull", "ledger", R"({"type": null})", false},
 | 
			
		||||
        {"ledgerTypeIsFloat0", "ledger", R"({"type": 0.0})", false},
 | 
			
		||||
        {"ledgerTypeIsFloat1", "ledger", R"({"type": 0.1})", true},
 | 
			
		||||
        {"ledgerTypeIsArray", "ledger", R"({"type": [1]})", true},
 | 
			
		||||
        {"ledgerTypeIsEmptyArray", "ledger", R"({"type": []})", false},
 | 
			
		||||
        {"ledgerTypeIsObject", "ledger", R"({"type": {"key": 1}})", true},
 | 
			
		||||
        {"ledgerTypeIsEmptyObject", "ledger", R"({"type": {}})", false},
 | 
			
		||||
 | 
			
		||||
        {"ledgerAccountsTrue", "ledger", R"({"accounts": true})", true},
 | 
			
		||||
        {"ledgerAccountsFalse", "ledger", R"({"accounts": false})", false},
 | 
			
		||||
        {"ledgerAccountsIsStr", "ledger", R"({"accounts": "String"})", true},
 | 
			
		||||
        {"ledgerAccountsIsEmptyStr", "ledger", R"({"accounts": ""})", false},
 | 
			
		||||
        {"ledgerAccountsIsNumber1", "ledger", R"({"type": 1})", true},
 | 
			
		||||
        {"ledgerAccountsIsNumber1", "ledger", R"({"accounts": 1})", true},
 | 
			
		||||
        {"ledgerAccountsIsNumber0", "ledger", R"({"accounts": 0})", false},
 | 
			
		||||
        {"ledgerAccountsIsNull", "ledger", R"({"accounts": null})", false},
 | 
			
		||||
        {"ledgerAccountsIsFloat0", "ledger", R"({"accounts": 0.0})", false},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user