= Contrôler les Droits d'Accès au Projet = [[TracNav]] [[TOC(inline)]] == 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`. 1. Dans `site_upload`, détruire le fichier de configuration existant 1. Dans `site_upload`, charger la nouvelle version du fichier 1. Réactiver la `AuthzPolicy` en la réajoutant en tête de la liste des `permission_policies` dans la section `trac.ini->trac`.