Benutzereigenschaften in Portlets bereitstellen

Seit Version 6.5.1 von CMS Fiona können Benutzereigenschaften, die beispielsweise von einem Verzeichnisdienst bereitgestellt wurden, im Portlet über das Request-Attribut javax.portlet.PortletRequest.USER_INFO ausgelesen werden.

Die vom Portal bereitgestellten Attribute werden in der Datei portlet.xml aufgeführt. Das folgende Beispiel zeigt zwei Attribute:

<user-attribute>
  <name>user.name.real</name>
</user-attribute>
<user-attribute>
  <name>user.business-info.online.email</name>
</user-attribute>

In den meisten Fällen werden diese Attribute jedoch nicht unter den im Standard genannten Namen bereitgestellt. Deshalb bietet der Portal Manager eine Möglichkeit, Namen aus dem Standard auf bereitgestellte Attributnamen abzubilden. Dazu wird in der Datei pm.xml das Property userAttributeMapper im Bean portletContainer gesetzt.

Das folgende Beispiel zeigt die Verwendung einer einfachen Abbildung der beiden obigen Attribute auf zwei auch vom Content Manager bereitgestellte Attribute:

<property name="userAttributeMapper">
  <bean class="com.infopark.pm.user.SimpleAttributeMapper">
    <property name="mapping">
      <value>
        user.business-info.online.email = email
        user.name.real = realName
      </value>
    </property>
  </bean>
</property>

Bei dieser Konfiguration kann ein Portlet die Eigenschaft email über folgenden Code abfragen:

Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO);
String email = (String)userInfo.get("user.business-info.online.email");