mirror of
				https://github.com/pgadmin-org/pgadmin4.git
				synced 2025-02-25 18:55:31 -06:00 
			
		
		
		
	2. In server(web) mode, update all the saved server credentials when user password is changed. Fixes #3377
		
			
				
	
	
		
			108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
##########################################################################
 | 
						|
#
 | 
						|
# pgAdmin 4 - PostgreSQL Tools
 | 
						|
#
 | 
						|
# Copyright (C) 2013 - 2019, The pgAdmin Development Team
 | 
						|
# This software is released under the PostgreSQL Licence
 | 
						|
#
 | 
						|
##########################################################################
 | 
						|
 | 
						|
from werkzeug.exceptions import HTTPException
 | 
						|
from werkzeug.http import HTTP_STATUS_CODES
 | 
						|
from flask_babelex import gettext as _
 | 
						|
from flask import request
 | 
						|
 | 
						|
from pgadmin.utils.ajax import service_unavailable
 | 
						|
 | 
						|
 | 
						|
class ConnectionLost(HTTPException):
 | 
						|
    """
 | 
						|
    Exception
 | 
						|
    """
 | 
						|
 | 
						|
    def __init__(self, _server_id, _database_name, _conn_id):
 | 
						|
        self.sid = _server_id
 | 
						|
        self.db = _database_name
 | 
						|
        self.conn_id = _conn_id
 | 
						|
        HTTPException.__init__(self)
 | 
						|
 | 
						|
    @property
 | 
						|
    def name(self):
 | 
						|
        return HTTP_STATUS_CODES.get(503, 'Service Unavailable')
 | 
						|
 | 
						|
    def get_response(self, environ=None):
 | 
						|
        return service_unavailable(
 | 
						|
            _("Connection to the server has been lost."),
 | 
						|
            info="CONNECTION_LOST",
 | 
						|
            data={
 | 
						|
                'sid': self.sid,
 | 
						|
                'database': self.db,
 | 
						|
                'conn_id': self.conn_id
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
    def __str__(self):
 | 
						|
        return "Connection (id #{2}) lost for the server (#{0}) on " \
 | 
						|
               "database ({1})".format(self.sid, self.db, self.conn_id)
 | 
						|
 | 
						|
    def __repr__(self):
 | 
						|
        return "Connection (id #{2}) lost for the server (#{0}) on " \
 | 
						|
               "database ({1})".format(self.sid, self.db, self.conn_id)
 | 
						|
 | 
						|
 | 
						|
class SSHTunnelConnectionLost(HTTPException):
 | 
						|
    """
 | 
						|
    Exception when connection to SSH tunnel is lost
 | 
						|
    """
 | 
						|
 | 
						|
    def __init__(self, _tunnel_host):
 | 
						|
        self.tunnel_host = _tunnel_host
 | 
						|
        HTTPException.__init__(self)
 | 
						|
 | 
						|
    @property
 | 
						|
    def name(self):
 | 
						|
        return HTTP_STATUS_CODES.get(503, 'Service Unavailable')
 | 
						|
 | 
						|
    def get_response(self, environ=None):
 | 
						|
        return service_unavailable(
 | 
						|
            _("Connection to the SSH Tunnel for host '{0}' has been lost. "
 | 
						|
              "Reconnect to the database server.").format(self.tunnel_host),
 | 
						|
            info="SSH_TUNNEL_CONNECTION_LOST",
 | 
						|
            data={
 | 
						|
                'tunnel_host': self.tunnel_host
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
    def __str__(self):
 | 
						|
        return "Connection to the SSH Tunnel for host '{0}' has been lost. " \
 | 
						|
               "Reconnect to the database server".format(self.tunnel_host)
 | 
						|
 | 
						|
    def __repr__(self):
 | 
						|
        return "Connection to the SSH Tunnel for host '{0}' has been lost. " \
 | 
						|
               "Reconnect to the database server".format(self.tunnel_host)
 | 
						|
 | 
						|
 | 
						|
class CryptKeyMissing(HTTPException):
 | 
						|
    """
 | 
						|
    Exception
 | 
						|
    """
 | 
						|
 | 
						|
    def __init__(self):
 | 
						|
        HTTPException.__init__(self)
 | 
						|
 | 
						|
    @property
 | 
						|
    def name(self):
 | 
						|
        return HTTP_STATUS_CODES.get(503, 'Service Unavailable')
 | 
						|
 | 
						|
    def get_response(self, environ=None):
 | 
						|
        return service_unavailable(
 | 
						|
            _("Crypt key is missing."),
 | 
						|
            info="CRYPTKEY_MISSING",
 | 
						|
        )
 | 
						|
 | 
						|
    def __str__(self):
 | 
						|
        return "Crypt key is missing."
 | 
						|
 | 
						|
    def __repr__(self):
 | 
						|
        return "Crypt key is missing."
 |