
| Key: |
UP-1653
|
| Type: |
Bug
|
| Status: |
Open
|
| Priority: |
Major
|
| Assignee: |
Unassigned
|
| Reporter: |
Matt Young
|
| Votes: |
0
|
| Watchers: |
1
|
|
If you were logged in you would be able to see more operations.
|
|
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
|
|
When a user logs into the portal, and then selected preferences, and "save preferences on logout" is set to true, and then they let their session timeout, the next time they return to the portal, they'll see the footer only.
It appears that this is because the Structure Stylesheet User Preference 'userLayoutRoot' is being set to 'ctf1' when you enter preferences, and if your session expires this is saved, but you can't log back into the portal directly on the preferences page.
As a fix to this, in the finishedSession() method of UserPreferencesManager.java, I've added the following code to reset all of a user's userLayoutRoots to 'root'. Maybe not the perfect solution, but it does halt the problem.
public void finishedSession(HttpSessionBindingEvent bindingEvent) {
// persist the layout and user preferences
try {
if(saveUserPreferencesAtLogout) {
// DUKE MCY Fix for losing layout if session expires mid stream
StructureStylesheetUserPreferences ssup = complete_up.getStructureStylesheetUserPreferences();
if (!ssup.getParameterValue("userLayoutRoot").equals("root")) {
Hashtable ht = ssup.getParameterValues();
ht.put("userLayoutRoot", "root");
ssup.setParameterValues(ht);
}
// End
ulsdb.putUserPreferences(m_person, complete_up);
ulm.saveUserLayout();
}
} catch (Exception e) {
log.error("UserPreferencesManager::finishedSession() : unable to persist layout upon session termination !", e);
}
}
|
|
Description
|
When a user logs into the portal, and then selected preferences, and "save preferences on logout" is set to true, and then they let their session timeout, the next time they return to the portal, they'll see the footer only.
It appears that this is because the Structure Stylesheet User Preference 'userLayoutRoot' is being set to 'ctf1' when you enter preferences, and if your session expires this is saved, but you can't log back into the portal directly on the preferences page.
As a fix to this, in the finishedSession() method of UserPreferencesManager.java, I've added the following code to reset all of a user's userLayoutRoots to 'root'. Maybe not the perfect solution, but it does halt the problem.
public void finishedSession(HttpSessionBindingEvent bindingEvent) {
// persist the layout and user preferences
try {
if(saveUserPreferencesAtLogout) {
// DUKE MCY Fix for losing layout if session expires mid stream
StructureStylesheetUserPreferences ssup = complete_up.getStructureStylesheetUserPreferences();
if (!ssup.getParameterValue("userLayoutRoot").equals("root")) {
Hashtable ht = ssup.getParameterValues();
ht.put("userLayoutRoot", "root");
ssup.setParameterValues(ht);
}
// End
ulsdb.putUserPreferences(m_person, complete_up);
ulm.saveUserLayout();
}
} catch (Exception e) {
log.error("UserPreferencesManager::finishedSession() : unable to persist layout upon session termination !", e);
}
} |
Show » |
| There are no comments yet on this issue.
|
|