cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stéphane Bonhomme <steph...@exselt.com>
Subject protection par documents
Date Tue, 12 Dec 2006 11:04:17 GMT
Bonjour à tous

Je suis heureux de trouver cette liste de diffusion, car je viens de 
terminer mon premier site mis en oeuvre par cocoon. Il s'agit d'un site 
d'ouvrages juridiques en ligne pour le compte d'une maison d'édition (EFE).

Le site est accessible sur www.analysesexperts.com

Il me reste cepandant pas mal de point à regler sur ce site, je vais 
procéder pas à pas en exposant mes questions une à une.

D'une manière générale, n'ayant que peu d'expérience de cocoon, mais une 
solide connaissance de xslt, j'utilise principalement des 
transformations pour faire des traitements, j'ai encore pas mal de 
progrès à faire pour découvrir les capacités de cocoon pour la 
génération des formulaire et leur traitement, par exemple.

Ma première question concerne la protection des ressources. Sur le site 
j'ai des utilisateurs (utilisant les handlers d'authentification de 
cocoon), j'ai défini un handler pour la protection de mes documents 
(ceux qui sont à la vente); mais je ne suis pas satisfait de la 
politique mise en oeuvre : en effet tous les utilisateurs authetifiés 
avec le hadler "documents" peuvent aujourd'hui accéder à l'ensemble des 
documents publiés, or les utilisateurs achetent individuellement des 
ouvrages (dont le nombre ne peut être connu à l'avance), j'aimerais donc 
pouvoir faire en sorte que les utilisateurs aient auccès aux seuls 
ouvrages qui sont compris dans leur commande. Chaque utilisateur a un 
contexte de session contenant les références des ouvrages qu'il peut 
consulter, mais je ne sais pas comment, dans mon pipeline, protéger 
l'accès aux documents en fonction de cette information de session.

dans mon pipeline j'ai actuellement :


       <map:match pattern="AE/**">
	<map:act type="auth-protect">
	  <map:parameter name="handler" value="documents"/>

           <!-- les documents montés en pao -->
	  <map:match pattern="AE/*/*.pdf">
	    <map:read mime-type="application/pdf" 
src="context:/data/anaxp/html/{1}/files/{2}.pdf"/>
	  </map:match>

           <!-- les images des docs -->
	  <map:match pattern="AE/*/*.gif">
	    <map:read mime-type="image/gif" 
src="context:/data/anaxp/html/{1}/files/{2}.gif"/>
	  </map:match>

           <!-- les documents en xhtml -->
	  <map:match pattern="AE/*/*">
	    <map:aggregate element="AE">
	      <map:part 
src="context:/data/users/{session-context:userinfo/User/id}.xml"/>
	      <map:part src="context:/data/anaxp/html/{1}/{2}.html"/>
	    </map:aggregate>
	    <map:transform src="xslt/getpage.xsl">
	      <map:parameter name="use-request-parameters" value="yes"/>
	    </map:transform>
	    <map:serialize type="xhtml"/>
	  </map:match>

	</map:act>
       </map:match>

Dans la session de l'utilisateur, j'ai un context "abonnements" contenant :

<abo>
   <doc id="A001"/>
   <doc id="A002"/>
   <doc id="A003"/>
</abo>

Comment puis-je faire en sorte que les documents soient servis si 
seulement le deuxieme motif de l'url (celui qui vient après AE/) 
corresponde à un id d'un doc dans le contexte abonnements de la session.

Merci de vos suggestions.

Stéphane.
-- 
    Stéphane Bonhomme           --           Exselt Services

Formations, Conseil et Réalisations en Ingénierie Documentaire,
             Technologies Web et Logiciels Libres
      stephane@exselt.com   -   http://www.exselt.com
         04 57 39 30 78        /      06 88 57 27 08

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message