mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixed an issue where Transaction IDs were not found in session in the Query Tool. #5453
This commit is contained in:
@@ -803,7 +803,9 @@ class ServerNode(PGChildNodeView):
|
|||||||
shared=server.shared,
|
shared=server.shared,
|
||||||
user_id=server.user_id,
|
user_id=server.user_id,
|
||||||
user=manager.user_info if connected else None,
|
user=manager.user_info if connected else None,
|
||||||
server_type='pg' # default server type
|
server_type='pg', # default server type
|
||||||
|
user_name=server.username,
|
||||||
|
role=server.role,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -321,6 +321,8 @@ def panel(trans_id):
|
|||||||
params['server_name'] = underscore_escape(s.name)
|
params['server_name'] = underscore_escape(s.name)
|
||||||
if 'user' not in params:
|
if 'user' not in params:
|
||||||
params['user'] = underscore_escape(s.username)
|
params['user'] = underscore_escape(s.username)
|
||||||
|
if 'role' not in params and s.role:
|
||||||
|
params['role'] = underscore_escape(s.role)
|
||||||
params['layout'] = get_setting('SQLEditor/Layout')
|
params['layout'] = get_setting('SQLEditor/Layout')
|
||||||
params['macros'] = get_user_macros()
|
params['macros'] = get_user_macros()
|
||||||
params['is_desktop_mode'] = current_app.PGADMIN_RUNTIME
|
params['is_desktop_mode'] = current_app.PGADMIN_RUNTIME
|
||||||
@@ -371,7 +373,7 @@ def initialize_sqleditor(trans_id, sgid, sid, did=None):
|
|||||||
kwargs = {
|
kwargs = {
|
||||||
'user': data['user'] if 'user' in data else None,
|
'user': data['user'] if 'user' in data else None,
|
||||||
'role': data['role'] if 'role' in data else None,
|
'role': data['role'] if 'role' in data else None,
|
||||||
'password': None
|
'password': data['password'] if 'password' in data else None
|
||||||
}
|
}
|
||||||
|
|
||||||
is_error, errmsg, conn_id, version = _init_sqleditor(
|
is_error, errmsg, conn_id, version = _init_sqleditor(
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
|
|||||||
current_file: null,
|
current_file: null,
|
||||||
obtaining_conn: true,
|
obtaining_conn: true,
|
||||||
connected: false,
|
connected: false,
|
||||||
|
connected_once: false,
|
||||||
connection_status: null,
|
connection_status: null,
|
||||||
connection_status_msg: '',
|
connection_status_msg: '',
|
||||||
params: {
|
params: {
|
||||||
@@ -125,7 +126,7 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
|
|||||||
|
|
||||||
/* Connection status poller */
|
/* Connection status poller */
|
||||||
let pollTime = qtState.preferences.sqleditor.connection_status_fetch_time > 0
|
let pollTime = qtState.preferences.sqleditor.connection_status_fetch_time > 0
|
||||||
&& !qtState.obtaining_conn && qtState.preferences?.sqleditor?.connection_status ?
|
&& !qtState.obtaining_conn && qtState.connected_once && qtState.preferences?.sqleditor?.connection_status ?
|
||||||
qtState.preferences.sqleditor.connection_status_fetch_time*1000 : -1;
|
qtState.preferences.sqleditor.connection_status_fetch_time*1000 : -1;
|
||||||
/* No need to poll when the query is executing. Query poller will the txn status */
|
/* No need to poll when the query is executing. Query poller will the txn status */
|
||||||
if(qtState.connection_status === CONNECTION_STATUS.TRANSACTION_STATUS_ACTIVE && qtState.connected) {
|
if(qtState.connection_status === CONNECTION_STATUS.TRANSACTION_STATUS_ACTIVE && qtState.connected) {
|
||||||
@@ -241,7 +242,7 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const initializeQueryTool = ()=>{
|
const initializeQueryTool = (password)=>{
|
||||||
let selectedConn = _.find(qtState.connection_list, (c)=>c.is_selected);
|
let selectedConn = _.find(qtState.connection_list, (c)=>c.is_selected);
|
||||||
let baseUrl = '';
|
let baseUrl = '';
|
||||||
if(qtState.params.is_query_tool) {
|
if(qtState.params.is_query_tool) {
|
||||||
@@ -262,18 +263,20 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
|
|||||||
api.post(baseUrl, qtState.params.is_query_tool ? {
|
api.post(baseUrl, qtState.params.is_query_tool ? {
|
||||||
user: qtState.params.user,
|
user: qtState.params.user,
|
||||||
role: qtState.params.role,
|
role: qtState.params.role,
|
||||||
|
password: password
|
||||||
} : JSON.stringify(qtState.params.sql_filter))
|
} : JSON.stringify(qtState.params.sql_filter))
|
||||||
.then(()=>{
|
.then(()=>{
|
||||||
setQtState({
|
setQtState({
|
||||||
connected: true,
|
connected: true,
|
||||||
|
connected_once: true,
|
||||||
obtaining_conn: false,
|
obtaining_conn: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!qtState.params.is_query_tool) {
|
if(!qtState.params.is_query_tool) {
|
||||||
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.TRIGGER_EXECUTION);
|
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.TRIGGER_EXECUTION);
|
||||||
}
|
}
|
||||||
}).catch((err)=>{
|
}).catch((error)=>{
|
||||||
if(err.response?.request?.responseText?.search('Ticket expired') !== -1) {
|
if(error.response?.request?.responseText?.search('Ticket expired') !== -1) {
|
||||||
Kerberos.fetch_ticket()
|
Kerberos.fetch_ticket()
|
||||||
.then(()=>{
|
.then(()=>{
|
||||||
initializeQueryTool();
|
initializeQueryTool();
|
||||||
@@ -285,12 +288,23 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
|
|||||||
});
|
});
|
||||||
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.HANDLE_API_ERROR, kberr);
|
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.HANDLE_API_ERROR, kberr);
|
||||||
});
|
});
|
||||||
|
} else if(error?.response?.status == 428) {
|
||||||
|
connectServerModal(error.response?.data?.result, (passwordData)=>{
|
||||||
|
initializeQueryTool(passwordData.password);
|
||||||
|
}, ()=>{
|
||||||
|
setQtState({
|
||||||
|
connected: false,
|
||||||
|
obtaining_conn: false,
|
||||||
|
connection_status_msg: gettext('Not Connected'),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setQtState({
|
||||||
|
connected: false,
|
||||||
|
obtaining_conn: false,
|
||||||
|
});
|
||||||
|
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.HANDLE_API_ERROR, error);
|
||||||
}
|
}
|
||||||
setQtState({
|
|
||||||
connected: false,
|
|
||||||
obtaining_conn: false,
|
|
||||||
});
|
|
||||||
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.HANDLE_API_ERROR, err);
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user