8000 Fix issues with ArangoSearch link permissions in cluster mode (#6925) · mnemosdev/arangodb@9952cfb · GitHub
[go: up one dir, main page]

Skip to content

Commit 9952cfb

Browse files
Dan Larkin-Yorkjsteemann
Dan Larkin-York
authored andcommitted
Fix issues with ArangoSearch link permissions in cluster mode (arangodb#6925)
1 parent 63cfdad commit 9952cfb

6 files changed

+116
-72
lines changed

arangod/Aql/Functions.cpp

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
#include "Basics/fpconv.h"
4444
#include "Basics/tri-strings.h"
4545
#include "V8/v8-vpack.h"
46-
#include "GeneralServer/AuthenticationFeature.h"
4746
#include "Geo/GeoParams.h"
4847
#include "Geo/GeoUtils.h"
4948
#include "Geo/GeoJson.h"
@@ -520,8 +519,8 @@ std::vector<std::pair<std::string, format_func_t>> const sortedDateMap = {
520519
};
521520

522521
/// @brief register warning
523-
void registerWarning(ExpressionContext* expressionContext,
524-
char const* functionName,
522+
voi 8000 d registerWarning(ExpressionContext* expressionContext,
523+
char const* functionName,
525524
Result const& rr) {
526525
std::string msg = "in function '";
527526
msg.append(functionName);
@@ -821,7 +820,7 @@ void registerInvalidArgumentWarning(ExpressionContext* expressionContext,
821820
::registerWarning(expressionContext, functionName, TRI_ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH);
822821
}
823822

824-
bool parameterToTimePoint(ExpressionContext* expressionContext,
823+
bool parameterToTimePoint(ExpressionContext* expressionContext,
825824
transaction::Methods* trx,
826825
VPackFunctionParameters const& parameters,
827826
tp_sys_clock_ms& tp,
@@ -1393,7 +1392,7 @@ AqlValue callApplyBackend(ExpressionContext* expressionContext,
13931392
func = AqlFunctionFeature::getFunctionByName(ucInvokeFN);
13941393
if (func->implementation != nullptr) {
13951394
std::pair<size_t, size_t> numExpectedArguments = func->numArguments();
1396-
1395+
13971396
if (invokeParams.size() < numExpectedArguments.first ||
13981397
invokeParams.size() > numExpectedArguments.second) {
13991398
THROW_ARANGO_EXCEPTION_PARAMS(
@@ -1621,10 +1620,10 @@ AqlValue Functions::ToString(ExpressionContext*,
16211620
transaction::Methods* trx,
16221621
VPackFunctionParameters const& parameters) {
16231622
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
1624-
1623+
16251624
transaction::StringBufferLeaser buffer(trx);
16261625
arangodb::basics::VPackStringBufferAdapter adapter(buffer->stringBuffer());
1627-
1626+
16281627
::appendAsString(trx, adapter, value);
16291628
return AqlValue(buffer->begin(), buffer->length());
16301629
}
@@ -1639,9 +1638,9 @@ AqlValue Functions::ToBase64(ExpressionContext*,
16391638
arangodb::basics::VPackStringBufferAdapter adapter(buffer->stringBuffer());
16401639

16411640
::appendAsString(trx, adapter, value);
1642-
1641+
16431642
std::string encoded = basics::StringUtils::encodeBase64(std::string(buffer->begin(), buffer->length()));
1644-
1643+
16451644
return AqlValue(encoded);
16461645
}
16471646

@@ -1650,14 +1649,14 @@ AqlValue Functions::ToHex(ExpressionContext*,
16501649
transaction::Methods* trx,
16511650
VPackFunctionParameters const& parameters) {
16521651
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
1653-
1652+
16541653
transaction::StringBufferLeaser buffer(trx);
16551654
arangodb::basics::VPackStringBufferAdapter adapter(buffer->stringBuffer());
1656-
1655+
16571656
::appendAsString(trx, adapter, value);
1658-
1657+
16591658
std::string encoded = basics::StringUtils::encodeHex(std::string(buffer->begin(), buffer->length()));
1660-
1659+
16611660
return AqlValue(encoded);
16621661
}
16631662

@@ -1955,7 +1954,7 @@ AqlValue Functions::Reverse(ExpressionContext* expressionContext,
19551954
transaction::Methods* trx,
19561955
VPackFunctionParameters const& parameters) {
19571956
static char const* AFN = "REVERSE";
1958-
1957+
19591958
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
19601959

19611960
if (value.isArray()) {
@@ -2006,7 +2005,7 @@ AqlValue Functions::First(ExpressionContext* expressionContext,
20062005
transaction::Methods* trx,
20072006
VPackFunctionParameters const& parameters) {
20082007
static char const* AFN = "FIRST";
2009-
2008+
20102009
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
20112010

20122011
if (!value.isArray()) {
@@ -2028,7 +2027,7 @@ AqlValue Functions::Last(ExpressionContext* expressionContext,
20282027
transaction::Methods* trx,
20292028
VPackFunctionParameters const& parameters) {
20302029
static char const* AFN = "LAST";
2031-
2030+
20322031
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
20332032

20342033
if (!value.isArray()) {
@@ -2048,11 +2047,11 @@ AqlValue Functions::Last(ExpressionContext* expressionContext,
20482047
}
20492048

20502049
/// @brief function NTH
2051-
AqlValue Functions::Nth(ExpressionContext* expressionContext,
2050+
AqlValue Functions::Nth(ExpressionContext* expressionContext,
20522051
transaction::Methods* trx,
20532052
VPackFunctionParameters const& parameters) {
20542053
static char const* AFN = "NTH";
2055-
2054+
20562055
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
20572056

20582057
if (!value.isArray()) {
@@ -2702,7 +2701,7 @@ void rtrimInternal(uint32_t& startOffset, uint32_t& endOffset,
27022701
}
27032702

27042703
/// @brief function TRIM
2705-
AqlValue Functions::Trim(ExpressionContext* expressionContext,
2704+
AqlValue Functions::Trim(ExpressionContext* expressionContext,
27062705
transaction::Methods* trx,
27072706
VPackFunctionParameters const& parameters) {
27082707
static char const* AFN = "TRIM";
@@ -2856,7 +2855,7 @@ AqlValue Functions::Like(ExpressionContext* expressionContext,
28562855
transaction::Methods* trx,
28572856
VPackFunctionParameters const& parameters) {
28582857
static char const* AFN = "LIKE";
2859-
2858+
28602859
bool const caseInsensitive = ::getBooleanParameter(trx, parameters, 2, false);
28612860
transaction::StringBufferLeaser buffer(trx);
28622861
arangodb::basics::VPackStringBufferAdapter adapter(buffer->stringBuffer());
@@ -3077,7 +3076,7 @@ AqlValue Functions::RegexMatches(ExpressionContext* expressionContext,
30773076

30783077
UErrorCode status = U_ZERO_ERROR;
30793078

3080-
matcher->reset(valueToMatch);
3079+
matcher->reset(valueToMatch);
30813080
bool find = matcher->find();
30823081
if (!find) {
30833082
return AqlValue(AqlValueHintNull());
@@ -3232,7 +3231,7 @@ AqlValue Functions::RegexTest(ExpressionContext* expressionContext,
32323231
transaction::Methods* trx,
32333232
VPackFunctionParameters const& parameters) {
32343233
static char const* AFN = "REGEX_TEST";
3235-
3234+
32363235
bool const caseInsensitive = ::getBooleanParameter(trx, parameters, 2, false);
32373236
transaction::StringBufferLeaser buffer(trx);
32383237
arangodb::basics::VPackStringBufferAdapter adapter(buffer->stringBuffer());
@@ -3274,7 +3273,7 @@ AqlValue Functions::RegexReplace(ExpressionContext* expressionContext,
32743273
transaction::Methods* trx,
32753274
VPackFunctionParameters const& parameters) {
32763275
static char const* AFN = "REGEX_REPLACE";
3277-
3276+
32783277
bool const caseInsensitive = ::getBooleanParameter(trx, parameters, 3, false);
32793278
transaction::StringBufferLeaser buffer(trx);
32803279
arangodb::basics::VPackStringBufferAdapter adapter(buffer->stringBuffer());
@@ -3937,7 +3936,7 @@ AqlValue Functions::Unset(ExpressionContext* expressionContext,
39373936
transaction::Methods* trx,
39383937
VPackFunctionParameters const& parameters) {
39393938
static char const* AFN = "UNSET";
3940-
3939+
39413940
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
39423941

39433942
if (!value.isObject()) {
@@ -3960,7 +3959,7 @@ AqlValue Functions::UnsetRecursive(ExpressionContext* expressionContext,
39603959
transaction::Methods* trx,
39613960
VPackFunctionParameters const& parameters) {
39623961
static char const* AFN = "UNSET_RECURSIVE";
3963-
3962+
39643963
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
39653964

39663965
if (!value.isObject()) {
@@ -3982,7 +3981,7 @@ AqlValue Functions::UnsetRecursive(ExpressionContext* expressionContext,
39823981
AqlValue Functions::Keep(ExpressionContext* expressionContext, transaction::Methods* trx,
39833982
VPackFunctionParameters const& parameters) {
39843983
static char const* AFN = "KEEP";
3985-
3984+
39863985
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
39873986

39883987
if (!value.isObject()) {
@@ -4005,7 +4004,7 @@ AqlValue Functions::Translate(ExpressionContext* expressionContext,
40054004
transaction::Methods* trx,
40064005
VPackFunctionParameters const& parameters) {
40074006
static char const* AFN = "TRANSLATE";
4008-
4007+
40094008
AqlValue key = ExtractFunctionParameterValue(parameters, 0);
40104009
AqlValue lookupDocument = ExtractFunctionParameterValue(parameters, 1);
40114010

@@ -4604,7 +4603,7 @@ AqlValue Functions::SortedUnique(ExpressionContext* expressionContext,
46044603
transaction::Methods* trx,
46054604
VPackFunctionParameters const& parameters) {
46064605
static char const* AFN = "SORTED_UNIQUE";
4607-
4606+
46084607
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
46094608

46104609
if (!value.isArray()) {
@@ -4640,7 +4639,7 @@ AqlValue Functions::Sorted(ExpressionContext* expressionContext,
46404639
transaction::Methods* trx,
46414640
VPackFunctionParameters const& parameters) {
46424641
static char const* AFN = "SORTED";
4643-
4642+
46444643
AqlValue value = ExtractFunctionParameterValue(parameters, 0);
46454644

46464645
if (!value.isArray()) {
@@ -4723,7 +4722,7 @@ AqlValue Functions::UnionDistinct(ExpressionContext* expressionContext,
47234722
transaction::Methods* trx,
47244723
VPackFunctionParameters const& parameters) {
47254724
static char const* AFN = "UNION_DISTINCT";
4726-
4725+
47274726
size_t const n = parameters.size();
47284727

47294728
auto options = trx->transactionContextPtr()->getVPackOptions();
@@ -6232,7 +6231,7 @@ AqlValue Functions::Push(ExpressionContext* expressionContext, transaction::Meth
62326231
AqlValue Functions::Pop(ExpressionContext* expressionContext, transaction::Methods* trx,
62336232
VPackFunctionParameters const& parameters) {
62346233
static char const* AFN = "POP";
6235-
6234+
62366235
AqlValue list = ExtractFunctionParameterValue(parameters, 0);
62376236

62386237
if (list.isNull(true)) {
@@ -6263,7 +6262,7 @@ AqlValue Functions::Append(ExpressionContext* expressionContext,
62636262
transaction::Methods* trx,
62646263
VPackFunctionParameters const& parameters) {
62656264
static char const* AFN = "APPEND";
6266-
6265+
62676266
AqlValue list = ExtractFunctionParameterValue(parameters, 0);
62686267
AqlValue toAppend = ExtractFunctionParameterValue(parameters, 1);
62696268

@@ -6340,7 +6339,7 @@ AqlValue Functions::Unshift(ExpressionContext* expressionContext,
63406339
transaction::Methods* trx,
63416340
VPackFunctionParameters const& parameters) {
63426341
static char const* AFN = "UNSHIFT";
6343-
6342+
63446343
AqlValue list = ExtractFunctionParameterValue(parameters, 0);
63456344

63466345
if (!list.isNull(true) && !list.isArray()) {
@@ -6769,7 +6768,7 @@ AqlValue Functions::Percentile(ExpressionContext* expressionContext,
67696768
transaction::Methods* trx,
67706769
VPackFunctionParameters const& parameters) {
67716770
static char const* AFN = "PERCENTILE";
6772-
6771+
67736772
AqlValue list = ExtractFunctionParameterValue(parameters, 0);
67746773

67756774
if (!list.isArray()) {
@@ -7063,7 +7062,7 @@ AqlValue Functions::PregelResult(ExpressionContext* expressionContext,
70637062
::registerWarning(expressionContext, AFN, TRI_ERROR_FAILED);
70647063
return AqlValue(AqlValueHintEmptyArray());
70657064
}
7066-
7065+
70677066
auto buffer = std::make_unique<VPackBuffer<uint8_t>>();
70687067
VPackBuilder builder(*buffer);
70697068
if (ServerState::instance()->isCoordinator()) {
@@ -7073,7 +7072,7 @@ AqlValue Functions::PregelResult(ExpressionContext* expressionContext,
70737072
return AqlValue(AqlValueHintEmptyArray());
70747073
}
70757074
c->collectAQLResults(builder);
7076-
7075+
70777076
} else 10000 {
70787077
std::shared_ptr<pregel::IWorker> worker = feature->worker(execNr);
70797078
if (!worker) {
@@ -7082,12 +7081,12 @@ AqlValue Functions::PregelResult(ExpressionContext* expressionContext,
70827081
}
70837082
worker->aqlResult(builder);
70847083
}
7085-
7084+
70867085
if (builder.isEmpty()) {
70877086
return AqlValue(AqlValueHintEmptyArray());
70887087
}
70897088
TRI_ASSERT(builder.slice().isArray());
7090-
7089+
70917090
// move the buffer into
70927091
bool shouldDelete = true;
70937092
AqlValue val(buffer.get(), shouldDelete);
@@ -7101,7 +7100,7 @@ AqlValue Functions::Assert(ExpressionContext* expressionContext,
71017100
transaction::Methods* trx,
71027101
VPackFunctionParameters const& parameters) {
71037102
static char const* AFN = "ASSERT";
7104-
7103+
71057104
auto const expr = ExtractFunctionParameterValue(parameters, 0);
71067105
auto const message = ExtractFunctionParameterValue(parameters, 1);
71077106

@@ -7119,7 +7118,7 @@ AqlValue Functions::Assert(ExpressionContext* expressionContext,
71197118
AqlValue Functions::Warn(ExpressionContext* expressionContext, transaction::Methods* trx,
71207119
VPackFunctionParameters const& parameters) {
71217120
static char const* AFN = "WARN";
7122-
7121+
71237122
auto const expr = ExtractFunctionParameterValue(parameters, 0);
71247123
auto const message = ExtractFunctionParameterValue(parameters, 1);
71257124

@@ -7174,7 +7173,7 @@ AqlValue Functions::DateFormat(ExpressionContext* expressionContext,
71747173
return AqlValue(::executeDateFormatRegex(formatString, tp));
71757174
}
71767175

7177-
AqlValue Functions::NotImplemented(ExpressionContext* expressionContext,
7176+
AqlValue Functions::NotImplemented(ExpressionContext* expressionContext,
71787177
transaction::Methods*,
71797178
VPackFunctionParameters const& params){
71807179
::registerError(expressionContext, "UNKNOWN", TRI_ERROR_NOT_IMPLEMENTED);

0 commit comments

Comments
 (0)
0