Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

External Links to Channels and tabs

There are several ideas and requirements that have been voiced about enabling external links that come into uPortal and "land" directly on a channel in focus mode or on a tab bot both in guest mode and as an authenticated user.

Linking directly to a channel through login

For information on how to go directly to a channel in focus mode as an authenticated user see this page: Focus a channel

Linking directly to a channel in guest mode

To go to a channel in focus mode and in guest mode you also need a patch to allow transient layout wrapper to be handled by the guest preferences and modifications to session manager and login processing to handle passing parameters across session boundaries. The attachment deepLinkingForGuestPatch2-5-1.txt contains this patch for the 2.5.1 RC1 code.

The UserLayoutManagerFactory was refactored for this patch. This class is used to retrieve the layout manager implementation via the method getUserLayoutManager(IPerson person, UserProfile profile) when a layout manager implementation is requested for a logged in user. The orginal version of this method always wraps the layout manager implementation inside a TransientUserLayoutManager. This is fine for authenticated users. However, a separate method, immutableUserLayoutManager(IUserLayoutManager man), is used by GuestUserPreferencesManager to add the immutable wrapper for guest users. So in the unmodified code a guest layout manager is layered like this:

  • ImmutableLayoutManager
    • TransientLayoutManager
      • "real" layout manager as specified by properties file

In order for deep linking to work properly the transient layout manager wrapper should be on the outside like this:

  • TransientLayoutManager
    • ImmutableLayoutManager
      • "real" layout manager as specified by properties file

This patch adds a new public method getCoreUserLayoutManager(IPerson person, UserProfile profile) to the Layout Manager Factory. The new mwthod returns only the "real" layout manager. This allows GuestUserPreferencesManager to get the layout manager with the Transient Layout Manager "on the outside". In order to avoid duplication of code the getUserLayoutManager method was also reafactored to use the new method internally.

Info
titleHint

Links to channels in guest mode work only with a url which contains the tag element such as: http://portal.yale.edu/tag.idempotent.render.userLayoutRootNode.uP?uP_fname=yaleDirectorySearch