The requirement was clear, the customer wanted us to offer a user search not only in the area after a user login, but also in the so called anonymous area. But not only the search result list should be displayed (which is a peace of cake), but also a link should lead to the userDetails.
This turned out to be impossible in the first place, but Sven Kannengiesser – godfather of the portal himself turned up – and gave us the solution, as if it was that easy.
So here we go:
If a portal component is referencing another component by using code, or by specifying a URL like in the case of the PeopleDetails no iView can be found in the PCD in order to change attributes. One attribute that cannot be changed in PCD, because no iView handles this, is the AuthScheme the PeopleDetails component uses when it is called from the PeopleFinder component.
Do you get the problem ? OK me neither.
Lets say you download com.sap.netweaver.kmc.people.par from the portal, and import it to your NWDS, and then you have a closer look at the components that reside in there, you will find out, that there are no jsp?s, or dynpage?s or even webdynpro?s at all, but code that uses the underlying km libraries directly, and all the connection to the portal is done by the +KM Search +iView that uses the KM configuration to instantiate and handle the overall search process. Therefore there is no way of influencing the way this process (KM Search) is processed through the PCD (propably the PCD team didn?t like the KM team ;-).
The outcome, is that it seems, that even by providing an own implementation of a PeopleDetails iView we are not able to get it displayed without logging on. =>
but this is wrong! Yes, we dont have an iView in PCD, and yes therefore we cannot influence the Authscheme there, but we can do it in the portalapp.xml configuration in the +com.sap.netweaver.kmc.people +component, and redeploy the application.
Just like a miracle, the logon screen when clicking on a users detail is gone !
excerpt of portalapp.xml of component com.sap.netweaver.kmc.people.</p><p>>>snip========================== <br /> <component name=”PeopleDetails”> <br /> <component-config><br /> <property name=”ClassName” value=”com.sapportals.wcm.portal.proxy.ControllerServletProxy”/><br /> <property name=”ComponentType” value=”servlet”/><br /> <property name=”ResourceBundleName” value=”com.sap.ip.collaboration.coreui.api.people.flexibleui.PeopleBundle”/><br /> <property name=”SafetyLevel” value=”low_safety”/><br /> </component-config> <br /> <component-profile><br />* newly added.–> <property name=”AuthScheme” value=”anonymous”><br />* </property> <br /><<snap========================== </p>h4. Thanks to Sven Kannengiesser for the hint !
<p> </p><p> </p><p> </p><p> </p>