From 20202f56c068bab0c85b0797cfc1ce6c70f192b4 Mon Sep 17 00:00:00 2001 From: rikinsk Date: Tue, 26 Mar 2019 13:43:14 +0530 Subject: [PATCH] handle string value for array operators in console permission builder --- .../PermissionBuilder/PermissionBuilder.js | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js b/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js index d0e5f534a0485..bd2009e112d83 100644 --- a/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js +++ b/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js @@ -410,6 +410,14 @@ class PermissionBuilder extends React.Component { /********************************/ + const sessionVariableSuggestion = dispatchInput => { + return renderSuggestion(dispatchInput, 'X-Hasura-User-Id'); + }; + + const jsonSuggestion = dispatchInput => { + return renderSuggestion(dispatchInput, '{}', 'JSON'); + }; + const renderValue = (dispatchFunc, value, prefix, valueType) => { const dispatchInput = val => { let _val = val; @@ -440,14 +448,6 @@ class PermissionBuilder extends React.Component { return renderInput(dispatchInput, value); }; - const sessionVariableSuggestion = () => { - return renderSuggestion(dispatchInput, 'X-Hasura-User-Id'); - }; - - const jsonSuggestion = () => { - return renderSuggestion(dispatchInput, '{}', 'JSON'); - }; - let input; let suggestion; @@ -459,10 +459,10 @@ class PermissionBuilder extends React.Component { PGTypes.geography.includes(valueType) ) { input = inputBox(); - suggestion = jsonSuggestion(); + suggestion = jsonSuggestion(dispatchInput); } else { input = wrapDoubleQuotes(inputBox()); - suggestion = sessionVariableSuggestion(); + suggestion = sessionVariableSuggestion(dispatchInput); } return ( @@ -473,7 +473,12 @@ class PermissionBuilder extends React.Component { }; const renderValueArray = (dispatchFunc, values, prefix, valueType) => { - const _inputArray = []; + const dispatchInput = val => { + dispatchFunc({ prefix: prefix, value: val }); + }; + + const inputArray = []; + (values || []).concat(['']).map((val, i) => { const input = renderValue( dispatchFunc, @@ -481,17 +486,25 @@ class PermissionBuilder extends React.Component { addToPrefix(prefix, i), valueType ); - _inputArray.push(input); + inputArray.push(input); }); const unselectedElements = [(values || []).length]; - return ( + const _inputArray = ( ); + + const _suggestion = sessionVariableSuggestion(dispatchInput); + + return ( + + {_inputArray} {_suggestion} + + ); }; const renderOperatorExp = (dispatchFunc, expression, prefix, valueType) => { @@ -529,7 +542,10 @@ class PermissionBuilder extends React.Component { let _valueInput = ''; if (operator) { - if (isArrayTypeColumnOperator(operator)) { + if ( + isArrayTypeColumnOperator(operator) && + operationValue instanceof Array + ) { _valueInput = renderValueArray( dispatchFunc, operationValue,