Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Impossible de désabonner un utilisateur

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: David Verdin <adresse@cachée>
  • To: Nicolas Boullis <adresse@cachée>
  • Cc: adresse@cachée
  • Subject: Re: [sympa-fr] Impossible de désabonner un utilisateur
  • Date: Mon, 10 Dec 2007 12:15:00 +0100

Bonjour,

Nicolas Boullis a écrit :
Bonjour,

Jean-Pierre Masse wrote:
Ayant ete confronte' au meme type de probleme, je peut vous proposer une
solution via l'interface graphique de wwwsympa

avec des droits de listmater, sur la partie admin, configurer la liste,
sources de données vous repassez la source de donne'es en database et
vous validez
Il y a tout de même un risque que les personnes abonnées manuellement entre-temps se retrouvent désabonnées.
A priori, une manipulation directement sur la base de données (ça peut être scripté, sans doute) laisserait moins de place au doute.
On a eu ce problème là à cause de MySQL. À l'origine, les valeurs subscribed et included étaient codées sur un champ booléen, mais ce type n'était pas supporté de manière homogène d'un SGBD à l'autre. nous avons donc dû passer à un champ int. Or, lors de ce passage, MySQL, qui codait les champs booléens sous la forme d'une énumaration pouvant prendre les valeurs 0 ou 1, a tranformé les 0 en 1 et les 1 en 2. On ne sait pas pourquoi.

Normalement, le script d'upgrade lancé après l'installation de la nouvelle version, aurait dû prendre ce problème en charge et le régler. Il est curieux que cela ne se soit pas produit.

Quoi qu'il en soit, il est toujours possible de corriger ça. Suivez les étapes suivantes :

1- Transformez tous les "2" en "1"
2- Pour les champs "included_subscriber" : si le champs a la valeur "1" et que le champ "include_sources_subscriber" ne contient pas de valeur, c'est que l'utilisateur n'a pas été inclus. Affectez alors la valeur "0" au champ.
3- Pour les champs "subscribed_subscriber" : si le champs a la valeur "1" et que le champ "include_sources_subscriber" contient une valeur, c'est que l'utilisateur a été inclus. Vous n'êtes donc pas obligé de conserver son abonnement manuel. Affectez la valeur 0 au champ.

Vous perdez, dans cette opération, les doubles abonnements (subscribed et included) mais au moins vous ne risquez pas de supprimer d'abonnement manuel indûment.

Cordialement,

vous repassez la source de donne'es en include2 et vous validez a nouveau

et ca marche (je ne sais pas trop pourquoi...), votre administrateur
devrait pouvoir desabonner ses utilisateurs recalcitrants ;-)

Je dois avouer que j'étais un peu dubitatif au sujet de cette technique.

J'avais à peu près de tout dans ma liste :
+-----------------------+---------------------+----------+
| subscribed_subscriber | included_subscriber | COUNT(*) |
+-----------------------+---------------------+----------+
| NULL | 2 | 10 |
| 0 | 1 | 8 |
| 1 | 0 | 2 |
| 1 | 2 | 1 |
| 2 | 0 | 26 |
+-----------------------+---------------------+----------+

Et après cette manipulation « magique » tout est revenu d'équerre :
+-----------------------+---------------------+----------+
| subscribed_subscriber | included_subscriber | COUNT(*) |
+-----------------------+---------------------+----------+
| 0 | 1 | 18 |
| 1 | 0 | 28 |
| 1 | 1 | 1 |
+-----------------------+---------------------+----------+

Il me reste 19 listes concernées par des subscribed_subscriber ou
included_subscriber à 2, je vais donc leur faire subir le même
traitement illico.


Merci pour le tuyau,

Nicolas Boullis
École Centrale Paris

--
David Verdin
Comité réseau des universités




Archives gérées par MHonArc 2.6.19+.

Haut de le page