mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fix the issue with Jinja conditions in Foreign Data Wrappers, Foreign Servers, User Mapping.
I also did some re-formatting & re-factoring to code to remove all the duplicate code.
This commit is contained in:
committed by
Dave Page
parent
9aa479ea2e
commit
c34fdaf37d
@@ -111,3 +111,68 @@ def parse_priv_to_db(str_privileges, allowed_acls=[]):
|
||||
})
|
||||
|
||||
return privileges
|
||||
|
||||
|
||||
def tokenize_options(options_from_db, option_name, option_value):
|
||||
"""
|
||||
This function will tokenize the string stored in database
|
||||
e.g. database store the value as below
|
||||
key1=value1, key2=value2, key3=value3, ....
|
||||
This function will extract key and value from above string
|
||||
|
||||
Args:
|
||||
options_from_db: Options from database
|
||||
option_name: Option Name
|
||||
option_value: Option Value
|
||||
|
||||
Returns:
|
||||
Tokenized options
|
||||
"""
|
||||
options = []
|
||||
if options_from_db is not None:
|
||||
option_str = options_from_db.split(',')
|
||||
for fdw_option in option_str:
|
||||
k, v = fdw_option.split('=', 1)
|
||||
options.append({option_name: k, option_value: v})
|
||||
return options
|
||||
|
||||
|
||||
def validate_options(options, option_name, option_value):
|
||||
"""
|
||||
This function will filter validated options
|
||||
and sets flag to use in sql template if there are any
|
||||
valid options
|
||||
|
||||
Args:
|
||||
options: List of options
|
||||
option_name: Option Name
|
||||
option_value: Option Value
|
||||
|
||||
Returns:
|
||||
Flag, Filtered options
|
||||
"""
|
||||
valid_options = []
|
||||
is_valid_options = False
|
||||
|
||||
for option in options:
|
||||
# If option name is valid
|
||||
if option_name in option and \
|
||||
option[option_name] is not None and \
|
||||
option[option_name] != '' and \
|
||||
len(option[option_name].strip()) > 0:
|
||||
# If option value is valid
|
||||
if option_value in option and \
|
||||
option[option_value] is not None and \
|
||||
option[option_value] != '' and \
|
||||
len(option[option_value].strip()) > 0:
|
||||
# Do nothing here
|
||||
pass
|
||||
else:
|
||||
# Set empty string if no value provided
|
||||
option[option_value] = ''
|
||||
valid_options.append(option)
|
||||
|
||||
if len(valid_options) > 0:
|
||||
is_valid_options = True
|
||||
|
||||
return is_valid_options, valid_options
|
||||
|
||||
Reference in New Issue
Block a user