Créer sa propre permission : possible ?

cancel
Showing results for 
Search instead for 
Did you mean: 
aga
Member II

Créer sa propre permission : possible ?

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é.
2 Replies
rguinot
Customer

Re: Créer sa propre permission : possible ?

voir le fichier permissionDefinitions.xml dans alfresco.war/WEB-INF/classes/alfresco/model.
Rechercher aussi des infos sur le wiki.
f_habaoui_9514
Member II

Re: Créer sa propre permission : possible ?

salut

je me suis posé la même question au debut,mais j'ai trouvé qu'il est possible d'affecté ou d'enlever des permissions de l'alfresco demarré.
tu choisi ton document dans le navigateur (Alfresco),tu entre dans ses details,tu fais gestion des utilisateurs de contenu,par defaut tu vas trouver un groupe(everyone),ceci veux dir que ton contenu est utilisable et editable par tout le monde,il suffit de le suprimer,puis tu clique sur sur inviter en haut de la page,tu choisis les utilisateurs que tu veux avec les rôles que tu veux.
exemple:si tu veux que tes utilisateurs ne puissent pas editer ton contenu,tu leur donne le rôle d'Invité,comme ça lorsqu'ils se connectent à alfresco ils ne pourrons plus modifier le contenu(le "crayon" n'est plus là).

pour moi c'etais une solution satisfaisante,et j'espere que ça l'est pour toi aussi.

cordialement

f.habaoui