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
[EMAIL PROTECTED] - 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:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]