Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Panelnote
borderColoricon#ccc
bgColor#FFFFCE
titleBGColor#F7D6C1
titleThe Question
borderStyledashed

Vinny Khosla asked on the JASIG-PORTAL list:

How do i setup a user layout template?
Subsequently, how do I go about creating subsequent user accounts who would inherit the layout template?

Could you please tell me what tables, columns and xml files are involved
here?

Do the new users automatically inherit the layout template?
or Is there a way to force a new user to inherit a certain custom layout
template ?

Answer (credit due to Susan Bramhall for initially posting reponse on JASIG-PORTAL):

The easiest way to create a template is to use ant md5passwd to create the account then login and use the GUI to set up the layout you want.

To map a user to use the template use the PersonDirs.xml to map the some appropriate attribute to uPortalTemplateUserName. The login process for the user will select the layout that matches the value of the uPortalTemplateUserName person attribute.

For example:

...


       <uidquery>select first_name||' '||Last_name first_last,
       decode(role,'UNDERGRADUATE','student',
                   'GRAD_STUDENT','student',
                   'MP', 'staff',
                   'CT', 'staff',
                   'CAS', 'staff',
                   'SM', 'staff',
                   'FAC_LADDER','faculty',
                   'FAC_NON-LADDER','faculty',
                   'VF','faculty',
                   'FEL','faculty',
                   'PDA','faculty',
                   'PDF','faculty',
                   'proto-user') template,
       from portal_person_directory where netid=?</uidquery>
with attribute template mapped like this:
           <attribute>
               <name>template</name>
               <alias>uPortalTemplateUserName</alias>
           </attribute>

This would cause the value of "role" from the sql query to govern the choice of template. This is a snippet from our actual configuration.

Behind the scenes

The IUserIdentityStore interface is the mechanism for retrieving the unique identifier for the current user in the portal. There is one implementation of this interfact: RDBMUserIdentityStore. Two properties as well as the value of person attributes for the user affect how this class makes the choice of template.

  1. When the property
    Code Block
    org.jasig.portal.services.Authentication.autoCreateUsers=true
    RDBMUserIdentityStore will automatically create all necessary data for a new portal user based on a template user. If set to false users data will not be automatically created. So far there is no other mechanism for creating user data so this property is always set to true.
  1. The template user is specified either by the property defaultTemplateUserName by mapping a directory attribute to uPortalTemplateUserName. When a user logs in for the first time, RDBMUserIdentityStore first looks for a person attribute named uPortalTemplateUserName. The value of that attribute is expected to be the username of an existing user. The existing user is then the template for the new user. If no attribute is of that name is mapped the template user name comes from the property org.jasig.portal.services.Authentication.defaultTemplateUserName. In the distribution this is set to the user demo:
    Code Block
    org.jasig.portal.services.Authentication.defaultTemplateUserName=demo
    This means that if you make no changes and map no attribute to uPortalTemplateUserName then all new users will be cloned from the user demo.

...

false
titleContent moved

The content of this page has moved into the nascent uPortal manual.