Contrôler les Droits d'Accès au Projet
Table of Contents
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.
- Désactiver la
AuthzPolicy
en la supprimant de la liste despermission_policies
dans la sectiontrac.ini->trac
. - Dans
site_upload
, détruire le fichier de configuration existant - Dans
site_upload
, charger la nouvelle version du fichier - Réactiver la
AuthzPolicy
en la réajoutant en tête de la liste despermission_policies
dans la sectiontrac.ini->trac
.