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]

Répondre à