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

Reply via email to