Programme d'administration des mailing-listes
1. But du programme
Nous avons vu précédemment que l'interface Mail/Web gérait l'envoi d'e-mails à des groupes d'utilisateurs. Ce programme a été développé dans le but de mettre à jour facilement les informations concernant ces groupes et les utilisateurs y appartenant.
Le programme devra pouvoir effectuer les
opérations suivantes :
· ajout d'un groupe,
· destruction d'un groupe,
· visualisation et modification des informations concernant un groupe (nom,
adresse e-mail, type, activité, commentaires...),
· ajout, retrait d'utilisateurs.
Les informations relatives au groupe se
trouvent dans une base de données MySQL (dans la table Adresses_Groupes)
; celle-ci permettent la recherche d'un groupe selon le type (association, club,
atelier...) et l'activité (cinéma, jeux, informatique...) à partir de l'interface
Mail/Web.
Le programme créera autant d'alias pour l'adresse
e-mail du groupe qu'il y a de membres. Ce dernier devra se terminer par la mise
à jour des alias (commande newaliases).
Tout comme les deux programmes précédents, nous utiliserons les bibliothèques GTK et glade pour la réalisation de l'interface graphique.
2. Fonctionnement
a) Fenêtre principale
La fenêtre principale (affichée après l'entrée
du mot de passe pour la connexion à la base de données) se présente sous une
forme relativement simple :
· une liste déroulante contenant les noms des groupes (ces noms ont été préalablement
recherchés dans la table Adresses_Groupes),
· un groupe de boutons permettant d'effacer ou de modifier le groupe sélectionné
dans la liste, de créer un nouveau groupe et de quitter l'application.
b) Effacement d'un groupe
L'effacement est très simple : après demande
de confirmation, le programme va détruire les entrées dans la base de données
MySQL puis la ligne correspondant aux alias dans /etc/aliases.
Il ne reste plus qu'à mettre à jour la liste déroulante de la fenêtre principale.
c) Ajout d'un nouveau groupe
Si
l'utilisateur appuie sur le bouton "Ajouter" de la fenêtre principale, une boîte
de dialogue permettant la saisie des informations nécessaires va s'ouvrir.
Si l'utilisateur valide les informations (nom, adresses e-mail, type, activité,
commentaires), celles-ci vont être rajoutées dans la base de données via une
requête SQL. Avant de lancer la requête, le programme va tout de même
vérifier que le nom du groupe et que son adresse e-mail ne sont pas déjà dans
la base de données.
Nous l'avons vu plus haut, pour envoyer
un message au groupe, nous utilisons des alias qui sont contenus dans le fichier
/etc/aliases.
Les déclarations des alias se présentent sous la forme :
nom_groupe1: membre1, membre2
nom_groupe2: membre2, membre3, membre4
Lors de la création ou la modification d'un groupe, une nouvelle entrée dans ce fichier est créée (ou modifiée), on rajoutera alors dans /etc/aliases une ligne du type :
nom_du_nouveau_groupe:
On remarque qu'il n'y a rien après les ":", ceci est normal car il n'y a pas encore d'alias vers les membres du groupe (puisqu'il vient d'être créé), ce n'est que lorsqu'on éditera le groupe que l'on pourra rajouter des membres.
On peut aussi remarquer les deux menus déroulants contenant le type et l'activité du groupe. Pour plus de flexibilité et pour pouvoir rajouter à sa guise de nouveaux types et de nouvelles activités, on pourra compléter les deux fichiers /usr/share/type.fab et /usr/share/activite.fab.
Le format de ces fichiers est très simple : un type ou une activité par ligne, le fichier se termine par " # " :
ex type.fab :
Club
Association
Atelier
#
ex activite.fab :
Jeux
Théatre
Cinéma
Lecture
#
Le programme va donc lire ces fichiers et disposer les infos dans les deux listes.
d) Edition d'un groupe
L'édition d'un groupe se fait lors de l'appui sur le bouton "Editer" de la fenêtre principale.
Cette
nouvelle boîte de dialogue va permettre à la personne s'occupant de la mise
à jour de la mailing-liste, d'avoir accès non seulement aux informations concernant
le groupe, mais aussi à la liste des membres. Cette boîte de dialogue permet
donc de visualiser dans une liste les membres du groupe.
A partir de cette liste, on peut sélectionner un ou plusieurs nom(s) pour les
retirer de la liste (en cliquant sur "Suprimer adresse(s)".
Il est aussi possible d'en ajouter ("Ajouter une adresse"). Lorsque l'on rajoute
une nouvelle adresse, le programme va d'abord rechercher si celle-ci correspond
à un utilisateur de GrAnd Site (pour éviter l'ajout d'adresses qui n'existent
pas ou l'adresse d'utilisateurs étrangers au site) en soumettant une requête
SQL à la base de données (vers la table Comptes), si la réponse
est positive, il va ensuite regarder si cette adresse ne se trouve pas déjà
dans la liste ; si tout est bon, l'adresse est ajoutée, sinon on rejette la
demande d'ajout. Si on a décidé de supprimer ou de modifier des adresses dans
la liste, il faudra alors cliquer sur "Confirmer et quitter" pour revenir à
la fenêtre principale et modifier les entrées dans le fichier /etc/aliases,
sinon on peut annuler ces modifications en cliquant sur "Annuler".
Une
autre opération possible à partir de la boîte de dialogue d'édition est la modification
des informations du groupe, en cliquant sur "Modifier" : une autre boîte de
dialogue identique à celle ouverte lors de l'ajout d'un nouveau groupe s'affiche,
mais avec les champs contenants les informations complétées. Il est alors possible
de modifier les champs (sauf celui contenant le nom du groupe).
Si ces modifications sont validées, elles sont mises à jour dans la base de
données.
Si l'adresse e-mail à été modifiée, on va alors regarder si elle n'est pas utilisée
par un autre groupe en questionnant la base de données. Si la nouvelle adresse
n'est pas utilisée, on devra alors modifier l'entrée dans le fichier /etc/aliases,
car l'alias correspond à l'adresse e-mail sans l'adresse du serveur.
3. Conclusion
D'après la courte période de tests, e programme semble fonctionner correctement. Ce programme devra pourtant subir quelques tests avant d'être utilisé dans le cadre de GrAnd Site, car il utilise des fichiers importants de Linux : /etc/aliases ; si le programme était bogué au niveau des manipulations de ce fichier, cela pourrait avoir de graves conséquences sur le système.