Hello dev-cocoon,

first I want to describe the scenario:
We have an old portal based on cocoon 2.1.11 and now we want to develop a 
feature which requires to reload/rerendering the layout for navigation. In 
detail, the logged in user can switch to another identity, which may be have 
less or more navigation points on navigation bar. That is why the portal must 
re-rendering the layout for displaying the current (navigation rights of the 
identity) navigation.

The navigation is based on composite layouts:
<composite-layout name="tab" id="maintab">

       <!-- Startmenü -->
       <named-item name="Allgemein">
             <composite-layout name="linktab">
                    <named-item name="Startseite">
                           <coplet-layout name="coplet">
                                  
<coplet-instance-data>homepage-1</coplet-instance-data>
                           </coplet-layout>
                    </named-item>
...
The composite-layout which describe the role profile for navigation will be 
filtered by permissions.
I have found a solution for re-rendering by trial and error and I don't 
understand why it works.
On flow.js I've the following code:
function loadSkin( reload) {
var toolManager = 
cocoon.getComponent("org.apache.cocoon.portal.tools.PortalToolManager");
                // the following line seem to be triggering the rendering?
       var portalObjects = toolManager.getPortalObjects();
       var portalService = portalObjects.getPortalService();
       var portalLayout = portalObjects.getPortalLayout();

       // TODO: reload needed for changing the layout profile - but how?
       if (reload) {

             /**
            * This method is invoked when the user logs out of the portal
            *
            */
             //portalService.getComponentManager().getProfileManager().logout();
             portalObjects.getProfileManager().logout();
       }
}

I don't understand why the method logout() from class ProfileManager invoke the 
re-rendering due to the fact that the comment of this method (interface 
ProfileManager) say it logs user out of the portal. But the user is stay logged 
in and the navigation bar was updated in the right way. Where is the relation 
between this method call and the re-rendering of the portal layout? Does 
anybody know which implementation was used by the ProfileManager or knows the 
relation?

 *   The version of Cocoon: 2.1.11
 *   The servlet container: build in Jetty on local and  Tomcat 6 for testing 
and production.
 *   Platform details: JDK 1.6.0_26 on Win7
Thanks.
Mit freundlichen Grüßen
Ronald Hennig

Softwareentwickler
Portaltechnologie
Standort Hannover
2. OG, weiß, Wabe 2
Tel. +49 511 9020-5732



Swiss Life Deutschland Operations GmbH
Rechtsform: GmbH, Sitz der Gesellschaft: Hannover, Registergericht: AG 
Hannover, Registernummer: HRB 210245
Geschäftsführer: Thorsten Geier, Jürgen Rössler, Holger Torner

Die Swiss Life Deutschland Operations GmbH ist eine Servicegesellschaft der 
Swiss Life Gruppe in Deutschland. Sie ist damit beauftragt für die 
Vertriebsgesellschaften Swiss Life Select Deutschland GmbH, tecis 
Finanzdienstleistungen AG, HORBACH Wirtschaftsberatung GmbH und Deutsche 
Proventus AG Dienstleistungen sowohl im Innen- als auch im Außenverhältnis zu 
erbringen. Die Swiss Life Deutschland Operations GmbH ist in diesem 
Zusammenhang berechtigt, Willenserklärungen für die jeweiligen 
Vertriebsgesellschaften abzugeben und entgegenzunehmen.

Diese E-Mail sowie alle mit ihr verbundenen Dateien sind möglicherweise 
vertraulich. Wenn Sie diese E-Mail irrtümlicherweise erhalten haben, bitte ich 
Sie, diese Mitteilung nicht weiter zu verbreiten, zu kopieren, weiterzuleiten 
oder auf andere Weise davon Gebrauch zu machen. Bitte informieren Sie mich 
umgehend per E-Mail, falls Sie diese Mitteilung fälschlicherweise erhalten 
haben und löschen Sie diese E-Mail endgültig aus Ihrem System. Vielen Dank.

Reply via email to