AnsweredAssumed Answered

Créer sa propre permission : possible ?

Question asked by aga on Jun 25, 2008
Latest reply on Sep 11, 2008 by f.habaoui_9514
Bonjour,

Je suis complètement débutant sur Alfresco et je me pose des questions quant à la définition et aux tests de permissions "custom".
J'espère que l'énonce de mon problème sera suffisamment clair. (Je précise que j'utilise la version "Community 2.1.0".)

Je souhaite pouvoir conditionner certaines actions dans les menus d'Alfresco.
Typiquement, je souhaite retirer pour certains groupes d'utilisateurs la possibilité de modifier un document via l'icône "crayon" du menu "document_browse" (concrètement, je veux que cette icône soit inacessible/invisible à un certain groupe d'utilisateurs).
Cette icône "crayon" correspond en coulisses à l'action "edit_doc_http" définie de cette manière dans "web-client-config-actions.xml" :


         <!– Edit document action to open using normal HTTP access or inline Edit if set –>
         <action id="edit_doc_http">
            <permissions>
               <permission allow="true">Write</permission>
            </permissions>
            <evaluator>org.alfresco.web.action.evaluator.EditDocHttpEvaluator</evaluator>
            <label-id>edit</label-id>
            <image>/images/icons/edit_icon.gif</image>
            <action-listener>#{CheckinCheckoutBean.editFile}</action-listener>
            <params>
               <param name="id">#{actionContext.id}</param>
            </params>
            <!– can also specify style, class etc. but this is better done in 'actions' element –>
         </action>

Je souhaiterais conditionner l'apparition de ces actions sur autre chose que la permission "Write", car pour diverses raisons mon groupe d'utilisateurs a néanmoins besoin de cette permission.

Ma question est : est-il possible de définir ma propre permission de base dans "permissionDefinitions.xml" (ex : "MA_PERMISSION") et de modifier ainsi la définition de l'action "edit_doc_http" de cette manière :


         <!– Edit document action to open using normal HTTP access or inline Edit if set –>
         <action id="edit_doc_http">
            <permissions>
               <permission allow="true">MA_PERMISSION</permission>
            </permissions>
            <evaluator>org.alfresco.web.action.evaluator.EditDocHttpEvaluator</evaluator>
            <label-id>edit</label-id>
            <image>/images/icons/edit_icon.gif</image>
            <action-listener>#{CheckinCheckoutBean.editFile}</action-listener>
            <params>
               <param name="id">#{actionContext.id}</param>
            </params>
            <!– can also specify style, class etc. but this is better done in 'actions' element –>
         </action>

Est-ce possible, selon vous ?
Si oui, pourriez-vous me donner un exemple de code car j'ai fait quelques tests moi-même et l'évaluation de ma propre permission ne semble pas fonctionner !

Alternative : serait-il possible de tester un rôle plutôt qu'une permission dans l'exemple ci-dessus ?
En effet, j'ai déjà créé des rôles personnalisés : serait-il possible de tester leurs identifiants/noms plutôt que des permissions ?

Merci d'avance pour votre écoute et vos réponses,

    Aga.

P.S. : J'ai une autre question liée à celle-ci qui concerne l'Ownership des espaces - je vais la poser dans un autre topic pour plus de clarté.

Outcomes