Für die Umleitung eines authentisierten Users (in der Rolle Abonnent [ZMSSubscriber]) setzt aufgrund der primär hierarchisch organisierten Rechte-Vererbung zwei Knoten voraus, welche die Subscriber zugewiesen bekommen müssen. 1. allgemeine Login-Seite mit Redirect, 2. persönlicher Content-Knoten
Zuweisung der Rollen-Rechte zu den beiden Content-Knoten
1. PRIMAERE AUTHENTISIERUNG: Ein Content-Knoten für das initiale Einloggen (für alle gleich); hier wird die method pageelement_IndexAuthUser.dtml in einem Textabschnit eingesetzt oder über diesen aus der Template-Ebene aufgerufen. Die Methode erzeugt einen Redirect.
2. PERSÖNLICHER FOLDER: individueller Content-Folder im Data-Knoten; hier liegen die persönlichen Daten, die von anderen Usern nicht eingesehen werden können.
Die Methode pageelement_IndexAuthUser.dtml liest den username aus der primaeren Authentisierung aus und lenkt den Request auf den ersten individuellen Folder um. Alternativ kann man mit der gleichen Methode eine Liste der persönlichen Folder ausgeben und als Linkliste ausgeben, die der eingeloggte User dann explizit auswählen kann.
<!-- pageelement_IndexAuthUser -->
<dtml-comment>
<!-- table of contents based upon users authentification -->
<!-- redirecting to the first PAGE Object -->
<!-- Author: Dr. F Hoffmann -->
<!-- Date: Jun 09 2005 -->
<!-- 1. iterate all nodes of the user that he has been invited to -->
<!-- 2. check wether the current id is in one of the corresponding -->
<!-- node paths in the correct language -->
</dtml-comment>
<!-- please define your entry node -->
<dtml-in "content.e164.e166.filteredChildNodes(REQUEST,PAGES)">
<dtml-if sequence-start>
<h2>Access for user: <i><dtml-var AUTHENTICATED_USER></i></h2>
</dtml-if>
<ul>
<dtml-let nodes="getUserAttr(AUTHENTICATED_USER,'nodes',{})"
nodekeys="nodes.keys()">
<dtml-in nodekeys>
<dtml-let seqindex=sequence-index nodekey=sequence-item
nodevalue="nodes[nodekey]"
ob="getLinkObj(nodekey,REQUEST)">
<dtml-if ob>
<dtml-call "REQUEST.set('ob_path_id_list',[])">
<dtml-in "ob.breadcrumbs_obj_path()">
<dtml-call "ob_path_id_list.append('%s'%getId())">
</dtml-in>
<dtml-if "this().getId() in ob_path_id_list and
lang in nodevalue.get('langs',[])">
<dtml-unless "REQUEST['URL'].find('manage')>0">
<!-- redirects to the first item -->
<dtml-call "RESPONSE.redirect(getHref2IndexHtml(REQUEST,deep=0))">
<!-- /redirects to the first item -->
</dtml-unless>
<li>
<a href="<dtml-var "getHref2IndexHtml(REQUEST,deep=0)">">
<dtml-var "getTitle(REQUEST)"></a>
<dtml-if "getObjProperty('attr_dc_description',REQUEST)">
<br /><dtml-var "getObjProperty('attr_dc_description',REQUEST)">
</dtml-if>
</li>
</dtml-if>
</dtml-if>
</dtml-let>
</dtml-in>
</dtml-let>
</ul>
</dtml-in>
<!-- /pageelement_IndexAuthUser -->