User Profile Data Organization
User Profile and Layout Use Cases
Two profiles share a layout
As of uPortal 3.2, a user may have two separate profiles that share a single layout. The default template user defines one mobile profile, and one desktop profile, both of which share a single default layout. The two profiles are associated with separate structures and themes, which ensures that the same layout is rendered differently on desktop and mobile devices.
Two profiles each use separate layouts
In the future, some institutions may want to define separate layouts for desktop and mobile devices. In addition to allowing for separate mobile content, this feature would enable uPortal to start providing layout editing on mobile devices.
Define a default tab
The default tab is currently represented as a structure parameter. The uPortal data model should support setting default parameters for a structure and overriding them with new defaults at the profile level.
Examples of other structure parameters include tab external IDs.
Allow users to override the default tab
In addition to setting structure-level defaults and overrides at the profile level, users should be able to set user-specific structure parameters. These parameters should be specified separately for each profile; for example, I might want to set a different default tab for my mobile and desktop profiles.
Define a default skin
The default skin is currently represented as a theme parameter. The uPortal data model should support settign default parameters for a theme and overriding them with new defaults at the profile level.
Allow users to set a skin preference
In addition to setting theme-level defaults and overrides at the profile level, users should be able to set user-specific theme parameters. These parameters should be specified separately for each profile; for example, I might want to set a different skin for my mobile and desktop profiles.
Data Objects
System-level
Theme and Structures
Themes and structures should each be system-level objects, as they are now. Both themes and structures should have system-level default parameters that can be overridden by individual users.
Structures - > default structure parameters
Themes -> default theme parameters
Profiles
As of uPortal 3.2, profiles are defined for system-level users (system and template users), then copied to create user profiles for individual users. We would like to stop creating profiles for individual users, and instead simply associate user profile preferences with a user and a system-level profile. This should simplify uPortal's data model and prevent unnecessary and messy data coyping.
A profile should have a unique fname-style identifier and reference the following system-level objects:
- Structure
- Theme
- Profile-specific default structure parameters
- Profile-specific default theme parameters
- System-level layout
User-level
User-level objects should become a mechanism for overriding system-level defaults, rather than a bucket of duplicated data. Users will need individual layouts associated with system layouts and will need individual overrides for theme and structure parameters.
Each user will have two objects for holding profile-specific preference information, as follows:
Map<Profile, Map<String, String>> structureParameters;
Map<Profile, Map<String, String>> themeParameters;
This page does not yet describe updated plans for handling layouts