1) Don't ask for SSH Tunnel or Database server password if it is already saved.
2) Modified the generic error message from SSH Tunnel library.pull/9209/head
parent
999462816b
commit
27f0125c24
|
|
@ -1432,8 +1432,9 @@ class ServerNode(PGChildNodeView):
|
||||||
"""
|
"""
|
||||||
prompt_tunnel_password = True
|
prompt_tunnel_password = True
|
||||||
# In case of identity file check the value of tunnel_prompt_password.
|
# In case of identity file check the value of tunnel_prompt_password.
|
||||||
if server.tunnel_identity_file is not None and \
|
if server.tunnel_password is not None or \
|
||||||
server.tunnel_prompt_password != 1:
|
(server.tunnel_identity_file is not None and
|
||||||
|
server.tunnel_prompt_password != 1):
|
||||||
prompt_tunnel_password = False
|
prompt_tunnel_password = False
|
||||||
|
|
||||||
return prompt_tunnel_password
|
return prompt_tunnel_password
|
||||||
|
|
@ -1595,7 +1596,7 @@ class ServerNode(PGChildNodeView):
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return self.get_response_for_password(
|
return self.get_response_for_password(
|
||||||
server, 401, True, prompt_tunnel_password,
|
server, 401, not server.save_password, prompt_tunnel_password,
|
||||||
getattr(e, 'message', str(e)))
|
getattr(e, 'message', str(e)))
|
||||||
|
|
||||||
if not status:
|
if not status:
|
||||||
|
|
@ -1607,7 +1608,8 @@ class ServerNode(PGChildNodeView):
|
||||||
return internal_server_error(errmsg)
|
return internal_server_error(errmsg)
|
||||||
|
|
||||||
return self.get_response_for_password(
|
return self.get_response_for_password(
|
||||||
server, 401, True, prompt_tunnel_password, errmsg)
|
server, 401, not server.save_password,
|
||||||
|
prompt_tunnel_password, errmsg)
|
||||||
else:
|
else:
|
||||||
if save_password and config.ALLOW_SAVE_PASSWORD:
|
if save_password and config.ALLOW_SAVE_PASSWORD:
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -109,21 +109,23 @@ export default function ConnectServerContent({closeModal, data, onOK, setHeight,
|
||||||
<DefaultButton data-test="close" startIcon={<CloseIcon />} onClick={()=>{
|
<DefaultButton data-test="close" startIcon={<CloseIcon />} onClick={()=>{
|
||||||
closeModal();
|
closeModal();
|
||||||
}} >{gettext('Cancel')}</DefaultButton>
|
}} >{gettext('Cancel')}</DefaultButton>
|
||||||
<PrimaryButton ref={okBtnRef} data-test="save" startIcon={<CheckRoundedIcon />} onClick={()=>{
|
{(data.prompt_password || data.prompt_tunnel_password) && <>
|
||||||
let postFormData = new FormData();
|
<PrimaryButton ref={okBtnRef} data-test="save" startIcon={<CheckRoundedIcon />} onClick={()=>{
|
||||||
if(data.prompt_tunnel_password) {
|
let postFormData = new FormData();
|
||||||
postFormData.append('tunnel_password', formData.tunnel_password);
|
if(data.prompt_tunnel_password) {
|
||||||
formData.save_tunnel_password &&
|
postFormData.append('tunnel_password', formData.tunnel_password);
|
||||||
postFormData.append('save_tunnel_password', formData.save_tunnel_password);
|
formData.save_tunnel_password &&
|
||||||
}
|
postFormData.append('save_tunnel_password', formData.save_tunnel_password);
|
||||||
if(data.prompt_password) {
|
}
|
||||||
postFormData.append('password', formData.password);
|
if(data.prompt_password) {
|
||||||
formData.save_password &&
|
postFormData.append('password', formData.password);
|
||||||
postFormData.append('save_password', formData.save_password);
|
formData.save_password &&
|
||||||
}
|
postFormData.append('save_password', formData.save_password);
|
||||||
onOK?.(postFormData);
|
}
|
||||||
closeModal();
|
onOK?.(postFormData);
|
||||||
}} >{gettext('OK')}</PrimaryButton>
|
closeModal();
|
||||||
|
}} >{gettext('OK')}</PrimaryButton>
|
||||||
|
</>}
|
||||||
</ModalFooter>
|
</ModalFooter>
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -612,8 +612,12 @@ WHERE db.oid = {0}""".format(did))
|
||||||
self.tunnel_created = True
|
self.tunnel_created = True
|
||||||
except BaseSSHTunnelForwarderError as e:
|
except BaseSSHTunnelForwarderError as e:
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception(e)
|
||||||
return False, gettext("Failed to create the SSH tunnel.\n"
|
return False, gettext(
|
||||||
"Error: {0}").format(str(e))
|
"Failed to create the SSH tunnel. Possible causes:\n"
|
||||||
|
"1. Enter the correct tunnel password (Clear saved password "
|
||||||
|
"if it has changed).\n 2. If using an identity file that "
|
||||||
|
"requires a password, enable “Prompt for Password?” in the "
|
||||||
|
"server dialog. \n 3. Verify the host address.")
|
||||||
|
|
||||||
# Update the port to communicate locally
|
# Update the port to communicate locally
|
||||||
self.local_bind_port = self.tunnel_object.local_bind_port
|
self.local_bind_port = self.tunnel_object.local_bind_port
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue