Project

General

Profile

Anomalie #3535

liste des rédacteurs connectés

Added by Franck D over 5 years ago. Updated about 2 months ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
espace privé
Target version:
Start date:
08/19/2015
Due date:
% Done:

0%

Resolution:
fixed
Navigateur:

Description

Bonjour
SPIP 3.1.0-beta SVN [22388]
Test fait sur grml.eu et chez ovh sur un spip "neuf"

Nativement dans ecrire/?exec=configurer_preferences, la case "Apparaître dans la liste des rédacteurs connectés" est cochée.
Donc, toutes les personnes devraient nativement apparaître, sauf à avoir fait le choix contraire !
Sauf que ce n'est pas le cas, car d'origine la case "imessage" dans la table spip_auteurs est vide alors qu'elle devrait contenir oui

Sans quoi, il faut que cela soit la case "Ne pas apparaître dans la liste des rédacteurs" qui soit cochée nativement et avec le mot non, dans la case "imessage" de la table spip_auteurs
https://core.spip.net/projects/spip/repository/entry/spip/prive/formulaires/configurer_preferences.html#L95

Franck

History

#1 Updated by Pierre KUHN over 5 years ago

Frank, c'est aussi le cas en 3.0.29 ou la valeur par défaut est vide.

#2 Updated by b b over 5 years ago

  • Description updated (diff)

#3 Updated by b b about 5 years ago

  • Category changed from authentification to espace privé

#4 Updated by guytarr ° over 4 years ago

Pierre KUHN a écrit :

Frank, c'est aussi le cas en 3.0.29 ou la valeur par défaut est vide.

Je viens de tomber sur ce cas lors d'une montée de version 2.1 à 3.0.
En 2.1, avec imessage vide, on apparaît dans la liste des connectés. Du coup, pour conserver le comportement sans rien touché, que pensez-vous de peupler à "oui" lorsque la valeur n'est pas "non" pour les 1comite et 0minirezo, afin de suivre la même logique ? c'est ce que j'ai fait pour ma part.
en 3.0 et 3.1 la résultat de la boucle

<BOUCLE_enligne(auteurs){id_auteur!=#SESSION{id_auteur}}{statut IN 1comite,0minirezo}{imessage!=non}{en_ligne>(#VAL{'Y-m-d H:i:s'}|date{[(#VAL{'-15 minutes'}|strtotime)]})}{!par en_ligne}{pagination 10}{', '}><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">#NOM</a></BOUCLE_enligne>[&nbsp;...
 (#GRAND_TOTAL|>{10}|oui)
 ([(#GRAND_TOTAL|objet_afficher_nb{auteur})])
]

donne :
SELECT auteurs.en_ligne, auteurs.id_auteur, auteurs.nom
FROM spip_auteurs AS `auteurs`
WHERE NOT((auteurs.id_auteur = '1'))
    AND ((auteurs.statut  IN ('1comite','0minirezo')))
    AND NOT((auteurs.imessage = 'non'))
    AND (auteurs.en_ligne > '2016-10-12 23:39:09')
ORDER BY auteurs.en_ligne DESC

Autre solution, corriger la boucle pour obtenir le même comportement qu'en 2.1 que la valeur soit à oui ou vide.

#5 Updated by Julien - over 3 years ago

Sur un SPIP 3.2b, (migré depuis un 2.1 > 3.1 > 3.2b), j'ai en effet 4 types de valeur pour imessage : "oui", "non", vide, NULL.
(Et une condition SQL imessage != 'non' retourne le vide mais pas le NULL).

Au niveau MySQL, la colonne imessage n'a pas de NOT NULL.
Au niveau du code SPIP, on trouve :
https://core.spip.net/projects/spip/repository/entry/spip/ecrire/maj/v012.php#L35 : création initial en NOT NULL

Il semble que sur une installation neuve :
https://core.spip.net/projects/spip/repository/entry/spip/ecrire/base/objets.php#L225 : le "field" est absent (bien que référencé dans "champs_editables" L223)

C'est l'organiseur qui semble gérer la création de imessage et messagerie :
https://core.spip.net/projects/organiseur/repository/entry/base/organiseur.php#L27
=> Il crée ces champs sans préciser de NOT NULL contrairement à v012.php

A noter que sur une base en SPIP 2.1, je vois que j'ai tout de même "OUI" à la propriété NOT NULL !!

Au niveau du code SPIP, il semble que les conditions portent toujours sur != 'non'.
Ne faudrait-il pas plutôt corriger la définition de la colonne en mettant un NOT NULL DEFAULT '' ?

#6 Updated by Vincent ROBERT almost 2 years ago

Je confirme que ce bug est toujours présent, 4 ans après sur la version stable 3.2.4
Signalé ici en doublon #4359

#7 Updated by Vincent ROBERT over 1 year ago

Pour patcher ce bug coté utilisateur, il suffit de :

  1. D’aller sur la page .../?exec=configurer_preferences
  2. Cliquer sur le bouton devant “ Ne pas apparaître dans la liste des rédacteurs ”
  3. D’attendre 3 secondes
  4. Cliquer sur le bouton devant “ Apparaître dans la liste des rédacteurs connectés “

Et le bug est définitivement résolu mais uniquement pour l'utilisateur qui fait ces manipulations ;-)

#8 Updated by b b over 1 year ago

Vincent, ici on essaye de résoudre le bug à la source, pas en demandant aux utilisateurs de bidouiller pour passer outre :p

#9 Updated by b b over 1 year ago

  • Status changed from Nouveau to En cours

Pour info, et suite à cette remarque :

Ne faudrait-il pas plutôt corriger la définition de la colonne en mettant un NOT NULL DEFAULT '' ?

C'est bien le cas dans le trunk depuis que la création de ce champs est prise en charge par le core cf r24293 (cela ne sera effectif que pour les nouvelles installations).

Autre solution, corriger la boucle pour obtenir le même comportement qu'en 2.1 que la valeur soit à oui ou vide.

Je penche plus pour cette solution plutôt que d'ajouter une nouvelle upgrade de la bdd dans maj/.

#10 Updated by cedric - 2 months ago

  • Target version changed from 3.1 to 3.3

le bug existe toujours en 3.2.4, donc je change la version cible pour qu'on gère ce ticket en 3.3

#12 Updated by b b about 2 months ago

\o/

Also available in: Atom PDF