wiki:Doc/AccessControl

Contrôler les Droits d'Accès au Projet

Les Permissions Standards

Trac permet par défaut d'attribuer de façon discrétionnaire et séparée par utilisateur ou groupe d'utilisateurs des permissions par de type lecture, création, modification pour chacune des fonctionalités (wiki, ticket, roadmap...). Avec les permissions par défaut, on donne donc à un utilisateur, l'accès à toutes les pages wiki ou aucune, à tous les tickets ou aucun, à tous les fichiers ou aucun...

La gestion des groupes d'utilisateur et l'attribution des permissions se fait depuis le menu Admin, Général->Permissions.

Les utilisateurs peuvent être regroupés en groupe et on peut assigner les permissions aux groupes plutôt qu'aux utilisateurs. Dans ce cas, il faut entrer le nom du groupe pour le champ Sujet. Trac crée 2 groupes par défaut dont les membres contiennent les utilisateurs du projet en fonction du fait qu'il se sont authentifiés ou non :

  • authenticated : tous les utilisateurs qui se sont connectés avec succès (lien Connexion ou Login).
  • anonymous : tous les utilisateurs qui ne se sont pas connectés (lien Connexion ou Login).

Permissions par Page (grain fin)

Il est aussi possible de définir des permissions par objet, par exemple par page ou arborescence de page wiki. Pour cela il faut verifier que le plugin Authz est bien activé dans la page Admin, menu Général->Extensions (ou General->Plugins en anglais). Sinon l'activer.

Après avoir activé le plugin, il faut créer un fichier authz.txt (ou tout autre nom de votre choix) qui doit contenir des sections du genre:

[wiki:WikiStart@*]
anonymous = WIKI_VIEW

Après wiki: il est doit y avoir un nom de page wiki, contenant éventuellement le wildcard *. Après le nom de la page on peut mettre @* pour donner accès à toutes les versions de la page.

Une fois créé le fichier doit être téléchargé en utilisant dans la page Admin le menu Siteupload->file puis le nom du fichier doit être indiqué dans le paramètre auth_file du menu trac.ini->authz_policy de la page Admin. Le nom de fichier entré pour le paramètre doit être préfixé par /trac-projects/trac/nom_projet/htdocs/ (avec nom_projet, le nom du projet tel qu'il apparait dans les URLs).

Enfin pour activer l'authentification fine grained, il faut aller dans le menu trac.ini->trac et mettre la valeur suivante dans le paramètre permission_policies :

AuthzPolicy,DefaultPermissionPolicy,LegacyAttachmentPolicy

Note: si le fichier de configuration des fine grained permissions n'existe pas (ou pas avec le chemin indiqué dans la configuration), l'activation de la AuthzPolicy rend impossible l'accès à toute page. Contacter le support en cas de problème.`

Les utilisateurs pour lesquels on veut contrôler le droit d'accès par les permissions fined grained ne doivent pas recevoir de permission par les permissions standards. Par exemple, dans l'exemple ci-dessus, anonymous ne doit pas avoir la permission WIKI_VIEW par défaut. Il est aussi possible de supprimer la permission d'un utilisateur ou d'un groupe pour une page ou une arborescence de pages données. Par exemple, pour construire une zone privée inaccessible aux utilisateurs non loggés :

[[wiki:Private/*@*]]
anonymous =

Mettre à jour le fichier de configuration

La mise à jour du fichier de configuration des fine grained permissions n'est pas triviale et demande de respecter les étapes suivantes au risque de rendre impossible tout accès au projet sans l'aide du support... L'ensemble des opérations se fait depuis le menu Admin du projet.

  1. Désactiver la AuthzPolicy en la supprimant de la liste des permission_policies dans la section trac.ini->trac.
  2. Dans site_upload, détruire le fichier de configuration existant
  3. Dans site_upload, charger la nouvelle version du fichier
  4. Réactiver la AuthzPolicy en la réajoutant en tête de la liste des permission_policies dans la section trac.ini->trac.
Last modified 14 years ago Last modified on May 21, 2010, 10:21:44 PM