Intégrer Mantis 0.17 à SPIP

All contributions published for previous SPIP versions

Utiliser l’authentification SPIP pour Mantis : un système d’inscription et d’identification unifié.

Vous éditez le site Web d’un logiciel libre (au hasard, une documentation officielle) et vous aimeriez aussi que vos contributeurs / rédacteurs aient un moyen simple de rapporter des bugs. Comme toujours en informatique, il faut choisir le bon outil ; SPIP n’offrant pas les spécificités nécessaires, il faut se tourner vers un outil dédié. Pour PHP (voire en général), il y a peu de bons systèmes de gestions de bugs disponibles en logiciel libre. Mantis fait partie de ceux-là : il est simple d’accès (beaucoup de systèmes concurrents ressemblent à une usine à gaz pour décideurs pressés) et francisé.

Oui mais voilà, Mantis a bien entendu son propre système d’utilisateurs, avec son propre formulaire d’identification et sa propre procédure d’inscription (et, bien sûr, des logins et mots de passe différents à mémoriser...). Or il serait tout de même plus simple que SPIP et Mantis partagent le même système : ainsi vos contributeurs seront d’autant plus enclins à aller rapporter des bugs sous Mantis plutôt que de remplir les forums SPIP.

Deux solutions se dessinent. La première consiste à utiliser un annuaire externe LDAP. Elle est réservée aux pros de l’administration système et nécessite des outils séparés.

La deuxième consiste à exploiter la présente contribution. Elle nécessite tout simplement :
-  une installation de SPIP
-  Mantis version 0.17.x (attention, ce n’est certainement pas compatible avec la version 0.18 !)
-  un éditeur de texte pour ajouter quelques lignes de configuration

Principe

Le principe général de cette contribution est très simple :

  1. les formulaires de connexion et déconnexion à Mantis sont remplacés par ceux de SPIP
  2. les auteurs SPIP se voient automatiquement créer un profil sous Mantis (leurs pouvoirs sont choisis en fonction de leur statut sous SPIP)
  3. rien d’autre n’est modifié : le fonctionnement de Mantis est complètement inchangé

Installation de Mantis

Tout d’abord, il faut installer Mantis dans un sous-répertoire de votre SPIP (que l’on suppose déjà installé). C’est très important : en effet Mantis réutilisera le cookie posé par SPIP, donc il n’est pas possible de mettre Mantis ailleurs que dans un sous-répertoire de SPIP. Mettons que ce sous-répertoire est nommé «mantis».

Une fois cette installation effectuée, il faut créer la base de données et configurer les variables les plus importantes : cette procédure est décrite dans le fichier doc/INSTALL du répertoire Mantis. Notez que cette étape ne diffère pas d’une installation normale de Mantis. Vous pouvez à ce point vérifier que Mantis fonctionne bien, « tout seul ».

Ensuite, vous devez installer les fichiers nécessaires à ce que Mantis se coordonne avec SPIP. Ces deux fichiers, login_page.php et logout_page.php sont livrés sous le présent article. Ils remplaceront les fichiers du même nom dans le répertoire Mantis (il est conseillé de faire une copie de sauvegarde des fichiers originaux).

Enfin, il faut ajouter au fichier de configuration que vous venez d’éditer, normalement config_inc.php, deux lignes de configuration supplémentaires :

$g_spip_dir = "../";
$g_spip_mantis_admins = array("paul", "jeanjean");

Explications :

-  la variable $g_spip_dir définit l’emplacement relatif de votre SPIP par rapport à Mantis ; si vous avez placé Mantis dans un sous-répertoire direct de SPIP comme conseillé plus haut, cette valeur doit être «../»

-  la variable $g_spip_mantis_admins définit la liste des administrateurs SPIP qui seront administrateurs Mantis : nous verrons plus loin à quoi cela correspond... Vous devrez remplacer «paul» et «jeanjean» par un nombre arbitraire de logins d’administrateurs de votre site SPIP.

Fonctionnement

Une fois ces modifications effectuées, le formulaire de login de Mantis est désactivé et remplacé par celui de SPIP. De même, la procédure de déconnexion de Mantis est également renvoyée vers celle de SPIP : tout auteur connecté à SPIP est automatiquement connecté à Mantis, sans effort supplémentaire. Bien sûr, le formulaire d’inscription public de SPIP, s’il est activé, permettra à quiconque de rapporter des bugs sous Mantis.

Par ailleurs, lors de sa première connexion à Mantis, un auteur SPIP se voit automatiquement créer un profil sous Mantis (dans lequel est notamment recopiée l’adresse mail, afin d’avoir accès au suivi de bug automatisé par e-mail).

Très important : les pouvoirs de l’utilisateur sous Mantis sont choisis de la façon suivante :

  • Les rédacteurs et visiteurs enregistrés SPIP deviennent « rapporteurs de bugs » ;
  • les administrateurs SPIP deviennent « développeurs » ;
  • les administrateurs SPIP présents dans la variable de configuration $g_spip_mantis_admins deviennent « administrateurs » Mantis (c’est-à-dire omnipotents).

C’est pourquoi la variable de configuration ci-dessus est capitale : si vous ne la réglez pas correctement, il n’y aura aucun administrateur sous Mantis, et il ne sera pas possible de créer des projets, des catégories, etc. Vous devrez alors effacer la base de données Mantis pour reprendre l’installation à zéro.

-  Cette contribution a été testée uniquement avec Mantis 0.17.5.

-  Exemple d’utilisation : http://www.spip.net/bugs/.

Discussion

One discussion

  • 1

    quelqu’un a t’il essayé de faire fonctionner ce montage entre spip et mantis. Pour ma part, j’ai essayé entre mantis 0.17.5 et spip 1.6 et cela ne fonctionne pas.
    Y a t’il d’autres opérations à effectuer en plus de celles citées dans l’article.
    merci d’avance.

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom