mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixed vulnerabilities and few design suspicions where two conditional structures are having the same implementation.
This commit is contained in:
committed by
Akshay Joshi
parent
7c12ade161
commit
df05efd7d9
@@ -1057,14 +1057,16 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
|||||||
|
|
||||||
for key in required_create_keys:
|
for key in required_create_keys:
|
||||||
if key in diff_dict:
|
if key in diff_dict:
|
||||||
if (key == 'columns' and ((
|
if key == 'columns' and ((
|
||||||
'added' in diff_dict[key] and
|
'added' in diff_dict[key] and
|
||||||
len(diff_dict[key]['added']) > 0
|
len(diff_dict[key]['added']) > 0
|
||||||
) or ('changed' in diff_dict[key] and
|
) or ('changed' in diff_dict[key] and
|
||||||
len(diff_dict[key]['changed']) > 0) or (
|
len(diff_dict[key]['changed']) > 0) or (
|
||||||
'deleted' in diff_dict[key] and
|
'deleted' in diff_dict[key] and
|
||||||
len(diff_dict[key]['deleted']) > 0)
|
len(diff_dict[key]['deleted']) > 0)
|
||||||
)) or key != 'columns':
|
):
|
||||||
|
create_req = True
|
||||||
|
elif key != 'columns':
|
||||||
create_req = True
|
create_req = True
|
||||||
|
|
||||||
if create_req:
|
if create_req:
|
||||||
|
|||||||
@@ -757,9 +757,9 @@ class BaseTableView(PGChildNodeView, BasePartitionTable):
|
|||||||
elif key == 'foreign_key':
|
elif key == 'foreign_key':
|
||||||
if 'oid' not in data:
|
if 'oid' not in data:
|
||||||
for arg in ['columns']:
|
for arg in ['columns']:
|
||||||
if arg not in data:
|
if arg not in data or \
|
||||||
return False
|
(isinstance(data[arg], list) and
|
||||||
elif isinstance(data[arg], list) and len(data[arg]) < 1:
|
len(data[arg]) < 1):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if 'autoindex' in data and \
|
if 'autoindex' in data and \
|
||||||
|
|||||||
@@ -626,16 +626,8 @@ define(['sources/gettext', 'underscore', 'jquery', 'backbone', 'backform',
|
|||||||
commonUtils.handleKeyNavigation(event);
|
commonUtils.handleKeyNavigation(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (command.moveUp() || command.moveDown() || command.save()) {
|
if (command.moveUp() || command.moveDown() || command.save() || command.cancel() ||
|
||||||
// backgrid vertical navigation (Up/Down arrow key)
|
(command.moveLeft() && ev.target.name === 'privilege' && $(ev.target).attr('privilege') === 'ALL')) {
|
||||||
ev.preventDefault();
|
|
||||||
ev.stopPropagation();
|
|
||||||
this.model.trigger('backgrid:edited', this.model, this.column, command);
|
|
||||||
// model.trigger('backgrid:edited', model, column, command);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// esc
|
|
||||||
else if (command.cancel()) {
|
|
||||||
// undo
|
// undo
|
||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
model.trigger('backgrid:edited', model, column, command);
|
model.trigger('backgrid:edited', model, column, command);
|
||||||
@@ -650,12 +642,6 @@ define(['sources/gettext', 'underscore', 'jquery', 'backbone', 'backform',
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (command.moveLeft() && ev.target.name === 'privilege' &&
|
|
||||||
$(ev.target).attr('privilege') === 'ALL') {
|
|
||||||
// If we are at the fist privilege then we should move to previous cell
|
|
||||||
ev.stopPropagation();
|
|
||||||
model.trigger('backgrid:edited', model, column, command);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -472,21 +472,12 @@ define([
|
|||||||
// If there is default arguments
|
// If there is default arguments
|
||||||
//Below logic will assign default values to "Default value" column
|
//Below logic will assign default values to "Default value" column
|
||||||
for (j = (myargname.length - 1); j >= 0; j--) {
|
for (j = (myargname.length - 1); j >= 0; j--) {
|
||||||
if (debug_info['proargmodes'] == null) {
|
|
||||||
if (arg_cnt) {
|
if (arg_cnt) {
|
||||||
arg_cnt = arg_cnt - 1;
|
arg_cnt = arg_cnt - 1;
|
||||||
def_val_list[j] = default_args[arg_cnt];
|
def_val_list[j] = default_args[arg_cnt];
|
||||||
} else {
|
} else {
|
||||||
def_val_list[j] = '<No default value>';
|
def_val_list[j] = '<No default value>';
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (arg_cnt) {
|
|
||||||
arg_cnt = arg_cnt - 1;
|
|
||||||
def_val_list[j] = default_args[arg_cnt];
|
|
||||||
} else {
|
|
||||||
def_val_list[j] = '<No default value>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < argtype.length; i++) {
|
for (i = 0; i < argtype.length; i++) {
|
||||||
@@ -923,22 +914,11 @@ define([
|
|||||||
let node = pgBrowser.Nodes[item_data._type];
|
let node = pgBrowser.Nodes[item_data._type];
|
||||||
let treeInfo = node.getTreeNodeHierarchy.call(node, selected_item);
|
let treeInfo = node.getTreeNodeHierarchy.call(node, selected_item);
|
||||||
|
|
||||||
let f_id;
|
|
||||||
if (item_data._type == 'function') {
|
|
||||||
f_id = item_data._id;
|
|
||||||
} else if (item_data._type == 'procedure') {
|
|
||||||
f_id = item_data._id;
|
|
||||||
} else if (item_data._type == 'edbfunc') {
|
|
||||||
f_id = item_data._id;
|
|
||||||
} else if (item_data._type == 'edbproc') {
|
|
||||||
f_id = item_data._id;
|
|
||||||
}
|
|
||||||
|
|
||||||
baseUrl = url_for('debugger.clear_arguments', {
|
baseUrl = url_for('debugger.clear_arguments', {
|
||||||
'sid': treeInfo.server._id,
|
'sid': treeInfo.server._id,
|
||||||
'did': treeInfo.database._id,
|
'did': treeInfo.database._id,
|
||||||
'scid': treeInfo.schema._id,
|
'scid': treeInfo.schema._id,
|
||||||
'func_id': f_id,
|
'func_id': item_data._id,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
baseUrl = url_for('debugger.clear_arguments', {
|
baseUrl = url_for('debugger.clear_arguments', {
|
||||||
|
|||||||
@@ -391,18 +391,7 @@ define([
|
|||||||
if (res.data.result == null || res.data.result.length == 0) {
|
if (res.data.result == null || res.data.result.length == 0) {
|
||||||
self.poll_result(trans_id);
|
self.poll_result(trans_id);
|
||||||
} else {
|
} else {
|
||||||
if (res.data.result[0].src != undefined || res.data.result[0].src != null) {
|
if (!pgTools.DirectDebug.debug_type && !pgTools.DirectDebug.first_time_indirect_debug) {
|
||||||
pgTools.DirectDebug.polling_timeout_idle = false;
|
|
||||||
pgTools.DirectDebug.docker.finishLoading(50);
|
|
||||||
if (res.data.result[0].src != pgTools.DirectDebug.editor.getValue()) {
|
|
||||||
pgTools.DirectDebug.editor.setValue(res.data.result[0].src);
|
|
||||||
self.UpdateBreakpoint(trans_id);
|
|
||||||
}
|
|
||||||
self.setActiveLine(res.data.result[0].linenumber - 2);
|
|
||||||
// Update the stack, local variables and parameters information
|
|
||||||
self.GetStackInformation(trans_id);
|
|
||||||
|
|
||||||
} else if (!pgTools.DirectDebug.debug_type && !pgTools.DirectDebug.first_time_indirect_debug) {
|
|
||||||
pgTools.DirectDebug.docker.finishLoading(50);
|
pgTools.DirectDebug.docker.finishLoading(50);
|
||||||
self.setActiveLine(-1);
|
self.setActiveLine(-1);
|
||||||
self.clear_all_breakpoint(trans_id);
|
self.clear_all_breakpoint(trans_id);
|
||||||
|
|||||||
@@ -238,14 +238,8 @@ export default class SchemaDiffUI {
|
|||||||
generated_script = script_header + 'BEGIN;' + '\n' + self.model.get('diff_ddl') + '\n' + 'END;';
|
generated_script = script_header + 'BEGIN;' + '\n' + self.model.get('diff_ddl') + '\n' + 'END;';
|
||||||
}
|
}
|
||||||
|
|
||||||
let preferences = pgWindow.pgAdmin.Browser.get_preferences_for_module('schema_diff');
|
|
||||||
if (preferences.schema_diff_new_browser_tab) {
|
|
||||||
pgWindow.pgAdmin.ddl_diff = generated_script;
|
pgWindow.pgAdmin.ddl_diff = generated_script;
|
||||||
generateScript(server_data, pgWindow.pgAdmin.DataGrid);
|
generateScript(server_data, pgWindow.pgAdmin.DataGrid);
|
||||||
} else {
|
|
||||||
pgWindow.pgAdmin.ddl_diff = generated_script;
|
|
||||||
generateScript(server_data, pgWindow.pgAdmin.DataGrid);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#diff_fetching_data').find('.schema-diff-busy-text').text('');
|
$('#diff_fetching_data').find('.schema-diff-busy-text').text('');
|
||||||
|
|||||||
@@ -843,15 +843,10 @@ define([
|
|||||||
saveUser: function(m) {
|
saveUser: function(m) {
|
||||||
var d = m.toJSON(true);
|
var d = m.toJSON(true);
|
||||||
|
|
||||||
if(m.isNew() && m.get('auth_source') == 'ldap' &&
|
if((m.isNew() && m.get('auth_source') == 'ldap' && (!m.get('username') || !m.get('auth_source') || !m.get('role')))
|
||||||
(!m.get('username') || !m.get('auth_source') || !m.get('role')) ) {
|
|| (m.isNew() && m.get('auth_source') == DEFAULT_AUTH_SOURCE && (!m.get('email') || !m.get('role') ||
|
||||||
return false;
|
!m.get('newPassword') || !m.get('confirmPassword') || m.get('newPassword') != m.get('confirmPassword')))
|
||||||
} else if (m.isNew() && m.get('auth_source') == DEFAULT_AUTH_SOURCE && (!m.get('email') || !m.get('role') ||
|
|| (!m.isNew() && m.get('newPassword') != m.get('confirmPassword'))) {
|
||||||
!m.get('newPassword') || !m.get('confirmPassword') ||
|
|
||||||
m.get('newPassword') != m.get('confirmPassword'))) {
|
|
||||||
// New user model is valid but partially filled so return without saving.
|
|
||||||
return false;
|
|
||||||
} else if (!m.isNew() && m.get('newPassword') != m.get('confirmPassword')) {
|
|
||||||
// For old user password change is in progress and user model is valid but admin has not added
|
// For old user password change is in progress and user model is valid but admin has not added
|
||||||
// both the passwords so return without saving.
|
// both the passwords so return without saving.
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -375,11 +375,8 @@ def cleanup_session_files():
|
|||||||
iterate_session_files = False
|
iterate_session_files = False
|
||||||
|
|
||||||
global LAST_CHECK_SESSION_FILES
|
global LAST_CHECK_SESSION_FILES
|
||||||
if LAST_CHECK_SESSION_FILES is None:
|
if LAST_CHECK_SESSION_FILES is None or \
|
||||||
iterate_session_files = True
|
datetime.datetime.now() >= LAST_CHECK_SESSION_FILES + \
|
||||||
LAST_CHECK_SESSION_FILES = datetime.datetime.now()
|
|
||||||
else:
|
|
||||||
if datetime.datetime.now() >= LAST_CHECK_SESSION_FILES + \
|
|
||||||
datetime.timedelta(hours=config.CHECK_SESSION_FILES_INTERVAL):
|
datetime.timedelta(hours=config.CHECK_SESSION_FILES_INTERVAL):
|
||||||
iterate_session_files = True
|
iterate_session_files = True
|
||||||
LAST_CHECK_SESSION_FILES = datetime.datetime.now()
|
LAST_CHECK_SESSION_FILES = datetime.datetime.now()
|
||||||
|
|||||||
@@ -791,12 +791,11 @@ class SQLAutoComplete(object):
|
|||||||
'signature': self.signature_arg_style
|
'signature': self.signature_arg_style
|
||||||
}[usage]
|
}[usage]
|
||||||
args = func.args()
|
args = func.args()
|
||||||
if not template:
|
if not template or (
|
||||||
return '()'
|
usage == 'call' and (
|
||||||
elif usage == 'call' and len(args) < 2:
|
len(args) < 2 or func.has_variadic())):
|
||||||
return '()'
|
|
||||||
elif usage == 'call' and func.has_variadic():
|
|
||||||
return '()'
|
return '()'
|
||||||
|
|
||||||
multiline = usage == 'call' and len(args) > self.call_arg_oneliner_max
|
multiline = usage == 'call' and len(args) > self.call_arg_oneliner_max
|
||||||
max_arg_len = max(len(a.name) for a in args) if multiline else 0
|
max_arg_len = max(len(a.name) for a in args) if multiline else 0
|
||||||
args = (
|
args = (
|
||||||
|
|||||||
Reference in New Issue
Block a user