Intégrer Mantis 0.18 à SPIP

All contributions published for previous SPIP versions

Gérer des bugs avec le système de login de SPIP.

Vous éditez le site Web d’un logiciel libre 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 simplement :
-  une installation de SPIP
-  Mantis version 0.18.x (pour les versions antérieures, voir ici)
-  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é «bugs».

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, trois lignes de configuration supplémentaires :

$g_spip_dir = "../";
$g_spip_mantis_dir = "bugs/";
$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_dir définit l’emplacement relatif de Mantis par rapport à votre SPIP (c’est exactement l’inverse de la variable précédente) ; si Mantis est installé dans un sous-répertoire nommé «bugs», cette valeur doit être «bugs/» (attention à ne pas oublier la barre finale !).

-  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).

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

Discussion

2 discussions

  • Gerard T.

    Très pratique.

    Avec Mantis 1.0.0 les procédures de connexion aux bases de données ont changé, la sélection de la base se fait dans db_connect. J’ai donc modifié 3 lignes dans page_login.php:

    Ligne 42: supprimer “db_select_db( $g_database_name );”

    Ligne 38: remplacer
    db_connect( $g_hostname, $g_db_username, $g_db_password, $g_port );
    par:
    db_connect( $g_hostname, $g_db_username, $g_db_password, $g_database_name );

    Ligne 40: idem avec db_pconnect

    Gérard

    Reply to this message

  • Bonjour,

    Sympa le truc, juste pour signaler que cela fonctionne avec la version 0.8.3
    Si on s’est trompé lors de la configuration de la variable $g_spip_mantis_admins, et que l’on ne désire pas tout réinstaller, il est possible à la main de changer le rôle de l’utilisateur en modifiant la table mantis_user_table et mettre dans le champ access_level le chiffre 90 (Administrator).

    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