Guide Drupal 6 - Épisode 5 : régler les droits d'accès et finaliser un site Drupal

Évidemment, ce que je vais dire ici est à adapter à votre projet. La première chose à faire, dont je ne vais pas traiter dans cet article, est de définir la politique d'accès de votre site : quels types d'utilisateurs vont s'y connecter ? quels devront être leurs pouvoirs sur le site ? etc.

Comprendre la gestion utilisateurs

Les droits d'accès dans Drupal sont extrêmement nombreux et complexes. Vous apprendrez à les comprendre en pratiquant. En outre, il existe un certain nombre de modules qui permettent d'ajouter des fonctionnalités de contrôle d'accès (voir le billet de la série consacré aux meilleurs modules Drupal). Je vais me contenter ici de quelques remarques et conseils issus de ma pratique. La règle fondamentale de sécurité sur une application web consiste à n'accorder aux utilisateurs que les droits nécessaires pour les tâches et les actions qui sont définies pour eux dans votre politique d'accès. Mieux vaut donc créer un grand nombre de rôles spécifiques et différents -- en augmentant la division des tâches -- plutôt que d'avoir un ou deux rôles génériques. Ainsi, vous attribuerez à une même personne plusieurs rôles différents afin de pouvoir ajouter ou retirer telle permission aisément à telle ou telle personne. Avant de définir les droits d'accès, il est préférable d'avoir défini tous les types de contenus, sinon vous devrez tout refaire. Un rôle correspond aux actions qu'un utilisateur à qui on a attribué ce rôle peut réaliser. C'est-à-dire qu'un rôle définit un ensemble de règles auxquelles vont obéir tous les utilisateurs de ce rôle. Voici quelques explications sur la manière de les régler :

  1. Gestion des utilisateurs > Rôles : permet de créer, modifier et supprimer les rôles. On peut créer autant de rôles que l'on veut, et surtout leur donner le nom que l'on veut. À noter : les 2 rôles par défaut de Drupal --  dont les "opérations" ne sont pas modifiables -- sont : utilisateur anonyme (auquel on peut donner un nom par défaut dans Configuration du site > Informations et auquel il est quand même possible d'attribuer plein de droits d'accès, par exemple un wiki ouvert où n'importe qui, sans se loguer, peut modifier le contenu) et utilisateur identifié, qui n'a que quelques droits supplémentaires mais auquel il est également possible d'attribuer d'autres droits (ce qui n'a pas grand intérêt). D'abord, il faut donc définir les "rôles"  dont vous avez besoin (exemple : administrateur, rédacteur, emmerdeur, blagueur, etc.) : l'avantage sur d'autres CMS c'est que vous pouvez créer vos propres rôles, en choisissant leur nom et leur nombre
  2. Gestion des utilisateurs > Droits d'accès : tableau récapitulatif des droits par rôle. Le droit d'accès minimal généralement attribué à l'utilisateur anonyme est "accéder au contenu". Après on fait comme on veut. Attention, comme certains droits dépendent de modules spécifiques, il faut donc toujours venir vérifier les droits après ajout ou suppression de modules. Par défaut, lorsqu'on installe un module aucun droit n'est accordé pour ce module. Exemple important : il faut pouvoir permettre à un utilisateur de blog de supprimer ses propres billets, sans pouvoir intervenir sur ceux des autres. Pour des contrôles d'accès d'une grande finesse, il existe des modules permettant d'aller encore plus loin, par exemple contrôler l'accès à un noeud en fonction de termes qui lui sont associés, ou réserver certaines pages précises à certains rôles, etc. Il est également possible de créer des groupes  séparés chacun ayant sa propre liste de membres.
  3. Gestion des utilisateurs > Utilisateurs : création et gestion des utilisateurs. Permet concrètement de gérer les identités et informations personnelles.
  4. Gestion des utilisateurs > Paramètres des utilisateurs : permet de définir des options importantes comme le fait de ne pas autoriser la création de nouveaux comptes utilisateurs, la personnalisation des formulaires automatiques envoyés à l'utilisateur (avec la liste des variables utilisables !), l'activation de l'avatar utilisateur, la signature, etc.
  5. Construction du site > Thèmes > onglet Configurer : contrôler les pages sur lesquelles s'affichent les portraits des utilisateurs ! Important car on ne se doute pas toujours que ça se trouve ici !
  6. Gestion des utilisateurs > Règles d'accès : permet d'autoriser ou refuser l'accès au site à des noms d'utilisateurs, adresses e-mail, hôte (domaines ou IP). Pour pouvoir combiner avantageusement ces règles, une règle Autoriser prend toujours le dessus sur une règle Refuser.

Règle : procéder par escalade, i.e. ajouter seulement à un rôle les droits d'accès que le rôle inférieur n'a pas, pour qu'il n'y ait aucun doublon de droits d'accès dans plusieurs rôles. Et ainsi, pour chaque utilisateur, combiner les rôles différents selon les privilèges qu'on veut lui donner. L'avantage immense est de ne pas avoir à assigner une permission individuellement à un utilisateur donné. D'où l'intérêt d'avoir un panel large et confortable de rôles. Attention : tout nouveau rôle hérite des droits de l'utilisateur identifié (inutile donc, de les recocher).

Faire attention à certains droits d'accès importants

Même si elle est très complète, la présentation des droits d'accès, dans Drupal, est encore un peu brute et mériterait d'être repensée. C'est pourquoi il est important de porter attention à quelques droits d'accès clef :

  • administrer les noeuds : ce droit permet d'autoriser un rôle utilisateur à gérer les informations de publication (auteur, date), les options de publication (publié ou non, promu en page d'accueil) et surtout de supprimer un node (article, page, etc.) ; en outre, si ce droit est attribué, la gestion de tous les types de contenu est rendue accessible alors que s'il est désactivé, on peut limiter un rôle utilisateur à la gestion d'un seul ou plusieurs types de contenus déterminés, ce qui est très pratique ;
  • accéder aux pages d'administration : ce droit doit être activé pour attribuer à un rôle utilisateur l'accès à certaines pages d'administration, y compris si c'est seulement l'accès à 1 seule rubrique de l'administration, par exemple les "Rapports" (journal, statistiques...), ou la "Gestion des utilisateurs " (ce qui peut être dangereux si vous n'avez pas installé le module Protect Critical Users). Combiné au module "Menu per role", c'est très pratique.
  • access all views : si ce droit est accordé, alors les droits d'accès définis dans chaque Vue sont supplantés ; en cas de Vues devant apparaître seulement à certains rôles, il vaut donc mieux ne pas cocher ce droit et définir la politique d'accès au cas par cas dans chaque vue concernée
  • administrer les menus : ce droit est nécessaire pour disposer des "Paramètres de menu" dans l'interface d'édition d'un node ; cela donne aussi le droit d'administrer les menus via Construction du site > Menus (ce qui peut être partiellement empêché avec le module menu per role)

Une fois définis les rôles et les permissions/droits d'accès de chacun, vous devez tester l'accès de chaque type d'utilisateur en créant des comptes de test. Sinon, gare aux mauvaises surprises !

Effectuer les derniers réglages

Avant la mise en production de votre site, quelques opérations essentielles ne doivent pas être oubliées :

  • Gestion du Contenu > Backup and Migrate : à condition d'avoir installé le module "Backup and Migrate", vous pouvez depuis cette page paramétrer des sauvegardes automatiques de la base de données du site, mais aussi la télécharger le dernier état de la base, la restaurer, etc.
  • Configuration du site > Rapports d’erreur : permet configurer les URLs des pages 404 (page non trouvée) et 403 (page accès refusé pour les utilisateurs non autorisés à visualiser un contenu) ; je vous conseille vivement d'installer et activer le module "404blocks", qui conservera la mise en page de votre thème sur les pages 404 et 403.
  • Configuration du site > Date et heure : vérifier que tout est correct dans le format des dates (important pour un site en français), surtout si vous avez installé le module Date ou Date API, qui modifie les réglages de base du système que vous pourriez avoir fait au départ ;
  • Configuration du site > Performance : permet d'activer le cache de Drupal et de régler sa durée, ce qui est capital avant la mise en production ; il est fortement recommandé d'activer aussi le cache des blocks,  de compresser les CSS, de vider le cache une première fois, etc.
  • Configuration du site > Informations : c'est ici désormais que l'on peut programmer la durée des tâches cron (ce qui suppose l'installation et l'activation du module Poormanscron cité plus haut). Le cron est un script qui permet aux modules d'exécuter régulièrement des tâches nécessaires (par exemple, Aggregator doit régulièrement mettre à jour ses flux), en déclenchant l'exécution des tâches planifiées pour chaque module concerné. Il est recommandé de programmer l'exécution du cron toutes les heures.
  • N'oubliez pas de tester dans votre site dans les principaux navigateurs (Firefox, Safari, Opera, Chrome, IE7, IE8...) et sous différents systèmes d'exploitation (Windows, Mac OS, Linux...).
  • Prévoir une stratégie de sauvegarde du site, notamment tout le répertoire /sites + la base de données MySQL
  • Pensez à installer une solution de statistiques, comme Piwik, grâce au module du même nom pour Drupal.
  • Vous pouvez aussi définir des Actions et Déclencheurs permettant de rendre automatique une foule de processus : par exemple, lorsqu'un utilisateur s'abonne à une newsletter, on peut déclencher un envoi de courriel, ou bien quand un utilisateur se connecte au site, on peut le re-diriger vers une page choisie, etc.
Portrait de Stéphane Vial
Stéphane Vial