Opened 11 years ago

Closed 11 years ago

#469 closed enhancement (fixed)

Better handling of login timeout in Reggie wizards

Reported by: Nicklas Nordborg Owned by: Nicklas Nordborg
Priority: major Milestone: Reggie v2.12
Component: net.sf.basedb.reggie Keywords:


Some of the Reggie wizards may take some time to complete, for example, the partition wizard. Even though BASE has been designed to keep the user logged in as long as the browser is open, there are cases when this is not working. Trying to finalize the registration in Reggie will in this case results in a confusing situation. The registration form is disabled and greyed out, but there is no message about either successful or failed registration.

Behind the scenes the Ajax request for saving the information is redirected to the login page which, of course, can't be displayed since this is a non-interactive process.

Fortunately, the partition wizard remember all values and is capable of recovering from this scenario if the user starts a new session. But this may not be the case for other wizards.

Possible solutions to this problem:

  • Implement a session keep-alive feature in Reggie that is able to perform better than the one in BASE. This could use Ajax requests and setTimeout calls in javascript. This should not be too difficult.
  • Implement a feature to check if a user is logged in or not. Then, present an interface to login again if needed. Requires a bit more work.
  • A combination of the above.

Change History (2)

comment:1 by Nicklas Nordborg, 11 years ago

Milestone: Reggie v2.xReggie v2.12
Status: newassigned

comment:2 by Nicklas Nordborg, 11 years ago

Resolution: fixed
Status: assignedclosed

(In [1897]) Fixes #469: Better handling of login timeout in Reggie wizards

A background timer is started by calling the javascript method keepSessionAlive() in pages that need protection. The timer uses Ajax calls to SessionServlet to check if the session is still alive and update the last access time to prevent automatic timeout. In debug mode, a checkbox is appended to the bottom of the page which can be used to simulate a session timeout (actually, a real logout is done). This should trigger a popup window that asks the user to login again. Data in the wizard should be unaffected and it should be possible to proceed as usual once the login has been completed.

This feature has currently been added to the following wizards:

  • Partition wizard (activated in step 2)
  • DNA/RNA/FlowThrough registration (step 3)
  • Create aliquots on Bioanalyzer/Caliper plates (step 3)
  • Create new mRNA plate
  • Assign barcodes to cDNA plate
Note: See TracTickets for help on using tickets.