def get_dbowner_connection(procedure=None, dbo_password=None, dbo_account='gm-dbo'): if procedure is None: procedure = _('<restricted procedure>') # 1) get password for gm-dbo if dbo_password is None: dbo_password = wx.GetPasswordFromUser ( message = _(""" [%s] This is a restricted procedure. We need the current password for the GNUmed database owner. Please enter the current password for <%s>:""") % ( procedure, dbo_account ), caption = procedure ) if dbo_password == '': return None gmLog2.add_word2hide(dbo_password) # 2) connect as gm-dbo login = gmPG2.get_default_login() dsn = gmPG2.make_psycopg2_dsn ( database = login.database, host = login.host, port = login.port, user = dbo_account, password = dbo_password ) try: conn = gmPG2.get_connection ( dsn = dsn, readonly = False, verbose = True, pooled = False ) except: _log.exception('cannot connect') gmGuiHelpers.gm_show_error ( aMessage = _('Cannot connect as the GNUmed database owner <%s>.') % dbo_account, aTitle = procedure ) gmPG2.log_database_access(action = 'failed to connect as database owner for [%s]' % procedure) return None return conn
def get_dbowner_connection(procedure=None, dbo_password=None, dbo_account='gm-dbo'): if procedure is None: procedure = _('<restricted procedure>') # 1) get password for gm-dbo if dbo_password is None: dbo_password = wx.GetPasswordFromUser(message=_(""" [%s] This is a restricted procedure. We need the current password for the GNUmed database owner. Please enter the current password for <%s>:""") % (procedure, dbo_account), caption=procedure) if dbo_password == '': return None gmLog2.add_word2hide(dbo_password) # 2) connect as gm-dbo login = gmPG2.get_default_login() dsn = gmPG2.make_psycopg2_dsn(database=login.database, host=login.host, port=login.port, user=dbo_account, password=dbo_password) try: conn = gmPG2.get_connection(dsn=dsn, readonly=False, verbose=True, pooled=False) except Exception: _log.exception('cannot connect') gmGuiHelpers.gm_show_error( aMessage=_('Cannot connect as the GNUmed database owner <%s>.') % dbo_account, aTitle=procedure) gmPG2.log_database_access( action='failed to connect as database owner for [%s]' % procedure) return None return conn