mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
. Fix to external access URLs to correctly navigate to specified NodeRef and setup Breadcrumb component etc.
. Tidy up of web-client authentication code git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2231 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1257,7 +1257,7 @@ public class BrowseBean implements IContextListener
|
||||
*
|
||||
* @param ref NodeRef of the selected space
|
||||
*/
|
||||
/*package*/ void updateUILocation(NodeRef ref)
|
||||
public void updateUILocation(NodeRef ref)
|
||||
{
|
||||
// get the current breadcrumb location and append a new handler to it
|
||||
// our handler know the ID of the selected node and the display label for it
|
||||
|
@@ -351,7 +351,9 @@ public class LoginBean
|
||||
|
||||
boolean alfrescoAuth = (session.get(LOGIN_EXTERNAL_AUTH) == null);
|
||||
|
||||
// invalidate Session for this user
|
||||
// Invalidate Session for this user.
|
||||
// This causes the sessionDestroyed() event to be processed by ContextListener
|
||||
// which is responsible for invalidating the ticket and clearing the security context
|
||||
if (Application.inPortalServer() == false)
|
||||
{
|
||||
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
|
||||
@@ -363,13 +365,6 @@ public class LoginBean
|
||||
request.getPortletSession().invalidate();
|
||||
}
|
||||
|
||||
// invalidate User ticket
|
||||
if (user != null)
|
||||
{
|
||||
this.authenticationService.invalidateTicket(user.getTicket());
|
||||
this.authenticationService.clearCurrentSecurityContext();
|
||||
}
|
||||
|
||||
// Request that the username cookie state is removed - this is not
|
||||
// possible from JSF - so instead we setup a session variable
|
||||
// which will be detected by the login.jsp/Portlet as appropriate.
|
||||
|
@@ -389,17 +389,24 @@ public class NavigationBean
|
||||
{
|
||||
if (this.location == null)
|
||||
{
|
||||
// init the location from the User object for the first time
|
||||
User user = Application.getCurrentUser(FacesContext.getCurrentInstance());
|
||||
|
||||
NodeRef homeSpaceRef = new NodeRef(Repository.getStoreRef(), user.getHomeSpaceId());
|
||||
String homeSpaceName = Repository.getNameForNode(this.nodeService, homeSpaceRef);
|
||||
|
||||
// set the current node to the users Home Space Id
|
||||
setCurrentNodeId(user.getHomeSpaceId());
|
||||
|
||||
// setup the breadcrumb with the same location
|
||||
// set the current node to the users Home Space Id if one has not already been set
|
||||
NodeRef homeSpaceRef;
|
||||
List<IBreadcrumbHandler> elements = new ArrayList<IBreadcrumbHandler>(1);
|
||||
if (getCurrentNodeId() == null)
|
||||
{
|
||||
User user = Application.getCurrentUser(FacesContext.getCurrentInstance());
|
||||
homeSpaceRef = new NodeRef(Repository.getStoreRef(), user.getHomeSpaceId());
|
||||
}
|
||||
else
|
||||
{
|
||||
homeSpaceRef = new NodeRef(Repository.getStoreRef(), getCurrentNodeId());
|
||||
}
|
||||
|
||||
// set initial node ID
|
||||
setCurrentNodeId(homeSpaceRef.getId());
|
||||
|
||||
// setup the breadcrumb with the same initial location
|
||||
String homeSpaceName = Repository.getNameForNode(this.nodeService, homeSpaceRef);
|
||||
elements.add(new NavigationBreadcrumbHandler(homeSpaceRef, homeSpaceName));
|
||||
setLocation(elements);
|
||||
}
|
||||
|
Reference in New Issue
Block a user