Hi On Fri, Jan 5, 2018 at 7:50 AM, Harshal Dhumal < harshal.dhu...@enterprisedb.com> wrote:
> Further details: > > 1. If session is expired and user performs any action from sqleditor that > makes ajax call > then in ajax error call back user can check and handle login related error > using code snippet. > > if (pgAdmin.Browser.UserManagement.is_pga_login_required(xhr)) { > return pgAdmin.Browser.UserManagement.pga_login(); > } > > Where is xhr is standard xhr or jqxhr object. > > 2. Similarly for connection lost (only maintenance db connection as we can > recover or reconnect other > connections if maintenance db connection is alive). It will attempt to > create/reconnect connection without > asking password (to handle passwordless connection, or saveed password or > password from pgpass file) > If connection to database still fails then it'll prompt for password. > > Code snippet: > SqlEditorController.handle_connection_lost(); > once connection lost is detected one can call handle_connection_lost() to > reconnect. > > 3. We maintain some additional data in session to maintain affinity between > each sqleditor/datagrid instance to backend database connection. However > if session expires and user > re-loggins then we need to first restore affinity between sqleditor to > backend database before we can start > using query tool. > > Code snippet: > > if(is_new_transaction_required(xhr)) { > SqlEditorController.init_transaction(); > } > > (note: I haven't looked at the code yet) How does this handle re-establishment of the connection mid-transaction, or, if the user has modified any session variables? -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company