Aller au contenu
Support de Zwii
Fred

ZwiiCMS 10.3.13 en test

Messages recommandés

Bonsoir,

Je lance une demande de retour de la dernière version corrective à venir avant 10400.

C'est une modification importante qui est censée résoudre les écritures simultanées lorsque plusieurs éditeurs ou admin travaillent en même temps. Le fichier user.json est le plus impacté dans la mesure ou la gestion des accès concurrents y écrit dès qu'une ressource est ouverte.

Par la même occasion et le temps de la résolution définitive de ce problème, j'ai activé la copie de backup ( user.json -> user.json.back ) lors d'un effacement ou d'une écriture de données, ne vous étonnez donc pas de la présence de ces fichiers.

Le cas échéant, j'ajouterai cette option au niveau de la config du Zwii.

Bon test  !

Fred

 

https://github.com/ZwiiCMS-team/ZwiiCMS/archive/10313.zip

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Fred

 

Mes "troupes" étant dispersés pour cause de période de fin d'année, je ne pourrais pas, de mon coté, faire des tests avec plusieurs connexions simultanées avant quelques jours.

 

En attendant   ... bonne fin de première mi temps  🙂

 

Hervé

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @Fred OK de mon coté je teste ce matin les corrections apportées.

 

@herve bien le bonjour, si tu veux je peux te prêter des "troupes fraîches" virtuelles en attendant que les tiennes reviennent de vacances;

Je m'explique Hervé sur ma petite astuce.

Chez moi j'ai installé une flopée de navigateurs web pour tout mes tests (surtout ceux qui concernent le visuel d'un zwii), alors quand je dois tester depuis plusieurs lieux différents et bien j'ouvre autant de navigateur souhaités....et autant de connexion admin que voulues (c'est ainsi que souvent je râle car j'oublie que si deux "éditeurs de zwii" que je simule sont en train de travailler chacun de leur coté, j'en oublie que je suis le seul à gérer cette simulation de membre connectés et donc ne peux modifié que dans un seul navigateur)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Fred

Bonsoir;

Fred j'ai téléchargé ton archive au dessus ce matin, puis ai attendu de rentrer chez moi pour la mettre en place.

Voilà je viens tout juste d'envoyer sur l'un de mes noms de domaines la 10313.

ET GROS BINS ...

 

Je n'ai pas pu l'installer de suite car j'ai immédiatement eu cette alerte (donc impossible de créer le compte admin et touti) dans la page de mon navigateur:

Citation

Jsondb : Écriture interdite dans le fichier de données site/data/config.json. Vérifiez les permissions.

 

1° De quelles permissions cela parle?

 

2° De plus  dans le dossier /site/data/ il n'y a rien à part un fichier en .htaccess et un dossier nommé "fr" qui est vide dedans;

 

Et pourtant j'en ai installé des Zwii, tous de la même façon.

Donc autant dire que l'installation de cette version à tester ne s'est pas faite du tout à cause d'une écriture interdite au départ.....

 

Je vais donc "investiguer" en farfouillant les fichiers pour voir ce qui cloche et où si je le trouve.. ce que le fichier JsonDB.class.php me reproche au point de m'empêcher d'installer cette version de test.

 

Je reviendrais demain voir consignes et réponses car je dois m'absenter ce soir.

Roger

 

 

Modifié par roger

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @Fred,

 

Même remarque que @roger. ça bloque à l'installation avec le message : Jsondb : Écriture interdite dans le fichier de données site/data/config.json. Vérifiez les permissions.

 

Le problème est dans jsondb.class.php ligne 134 : is_writable sur fichier inexistant.

 

Nouvelle ligne 134 :

        if ( is_writable($this->db) || ! file_exists($this->db) ) {

Ensuite l'installation se passe sans problème.

 

Quelques tests d'accès concurrents avec 2 administrateurs différents connectés (je ramène pour les tests accessTimer à 3 minutes) :

  • Verrouillage des pages : OK
  • Accès au bout de accessTimer : OK on se retrouve avec les 2 admins en édition et ils peuvent enregistrer la page sans crash.
  • Création des fichiers back : OK

 

 

Bonne journée

 

Sylvain

Modifié par sylvainlelievre
  • Merci 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Un premier retour de test "façon à l'arrache de roger"

 

- rien ne marche donc pour installer la version...

1==>  J'ai donc remplacé dans /site/   le dossier data dans son entier par celui d'une vieille version 10301

 

Et là quand j’appelle l'adresse de la version de test je peux me connecter et voir "les anciennes page de la version 10301"  et dans la config du site la version est estampillée 10.3.13

Logique, c'est comme ci j'avais fait une mise à jour....

 

Je confirme @Fred @sylvainlelievre que l'on retrouve effectivement les fichiers attendus en .back * (sauvegarde de données initiales de ces fichiers) comme le prévoit cette version de test 10313:

* Attention ces fichiers de sauvegarde (.back) ne sont pas les mêmes que ceux attendus (.bak) car renommés par le script d'installation, donc si vous les ouvres depuis filezila et bien pensez à ajouter cette nouvelle extention pour votre éditeur de fichier par défaut 🤓

 

    dans /site/data/

core.json.back

theme.json.back

user.json.back

   dans /site/data/fr/

module.json.back

 

C'est pas orthodoxe je sais ma façon de faire mais au moins j'ai pu vérifier dans un premier temps l'écriture de ces fichiers là qui doit être conforme aux fichiers originaux.

👍 Donc en cas d'erreur il suffira de se servir de ces fichiers .json..back en enlevant l'extension .back pour revenir en arrière..

@Fred validé chez moi ce test là ✅

b.png.1df1e921edc1c14cbd8ac9ff303423db.png

 

@Fred je vais continuer comme "le fou que je suis" et dont tu connais mes méthodes "space's" utilisées à aller jusqu'à la possibilité d'installer la version de test en supprimant les fichiers et dossiers qu'il faut dans /site/data/

 

Ensuite ne restera qu'à corriger pour toi l'alerte qui est générée d'origine...car là c'est po mon domaine.

Modifié par roger

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour tout le monde,

 

J'ai corrigé le bug ce matin : la classe jsondb contient désormais une gestion d'erreur mais un peu stricte. Je l'ai modifiée ce matin afin que les fichiers inexistants dans une installation fraîche soient créés.

 

@sylvainlelievre a vu juste.

 

Voici la nouvelle méthode save :

 

    /**
     * Saving to local database
     */
    public function save() {
        // Fichier inexistant, le créer
        if ( !file_exists($this->db) ) {
            touch($this->db);
        }
        // Backup file
        if ($this->config['backup']) {
            copy ($this->db, $this->db . '.back');
        }
        if ( is_writable($this->db) ) {
            // 3 essais
            for($i = 0; $i < 3; $i++) {
                if( @file_put_contents($this->db, json_encode($this->data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|LOCK_EX)) !== false) {
                    break;
                }
                // Pause de 10 millisecondes
                usleep(10000);

            }
            if ($i === 2) {
                exit ('Jsondb : Erreur d\'écriture dans le fichier de données ' . $this->db . '. Vérifiez le système de fichiers.' );
            }
        } else {
            exit ('Jsondb : Écriture interdite dans le fichier de données ' . $this->db .'. Vérifiez les permissions.' );
        }
    }

J'ai simplement ajouté le test qui contrôle l'existence du fichier de données avant de vérifier si on dispose des droits d'écriture.

 

En cas d'absence du fichier lors d'une installation fraîche, on le crée avec la commande touch.

 

Les versions suivantes ont également été mises à jour.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Version testée illico (comme une installation vierge d'un zwii)

@Fred je valide la correction apportée, aucun problèmes pour créer le site de cette version en partant de zéro;

 

😳 Heu faut bien un peu que je sorte des sentiers battus, please n'oubliez po les amis que le "roger" l'est un peu foldingue parfois quand il écrit un truc comme ci dessous

Juste une petite suggestion à te faire....cela concerne le féminin d'un mot.

On dit une tentative, au pluriel des tentatives (peut importe le nombre) donc si pas de tentative à effectuer au singulier on utilisera le terme aucune avec un e.

Pour un essai c'est bien le terme aucun car essai est masculin (comme au rugby)

 

Si il était possible de corriger cette "coquille" de conjugaison c'est à la ligne.... 173 de config.php remplacer "aucun" par exemple comme:

	// Sécurité de la  connexion - tentative max avant blocage
	public static $connectAttempt = [
		999 => 'Aucune tentative',
		3 => '3 tentatives',
		5 => '5 tentatives',
		10 => '10 tentatives'
	];

Avant

3.thumb.png.438fd8e6c054b6c5df8310588ac6b51f.png

Après

4.png.0be6598811ffb682c686636dc4b21743.png

 

😇 Heu je dis ça mais c'est juste parce que je le voit sous les yeux et surtout histoire Fred de t'enquiquiner un peu avec un truc qui a aucun rapport avec le test demandé, j'en rate pas une hein? Pas tirer sur moi je file me planquer dans mon trou de souris après cette parenthèse

 

Aller zou bon dimanche à vous les amis, Fred good job pour la 10313 ainsi que les autres corrections que tu as apporté (l'histoire du blog) avec Sylvain. Pour moi le correctif est publiable au plus tôt. 👍

Roger

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @Fred,

 

10.3.13 mais aussi 10.3.12 (et précédentes ?) : raz de connectFail.

 

Je pensais qu'en cas de connexion réussie la valeur de la clef connectfail de user.json était remise à zéro. Tu parles en effet de 'connexions successives'.

Or il n'en est rien la seule remise à 0 qui se produit c'est quand on atteint le nombre maxi d'erreurs de connexion et que le temps est écoulé.

 

Bonne journée

 

Sylvain

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour Sylvain,

 

En effet ça devrait se remettre à zéro, je regarde ça.

 

Bonne journée,

 

Fred

Partager ce message


Lien à poster
Partager sur d’autres sites

re-

Après la fin du timer, il y a bien une réinitialisation de la variable connectFail.

Cependant j'ai ajouté une réinitialisation supplémentaire après 412 de user.php pour remettre à zéro une fois un login correct saisi après un échec.

Mais si j'ai le temps demain, je voudrais reprendre cet algorithme afin d'inclure les échecs de captcha comme des échecs de mot de passe.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Dernier correctif fait :

Le 28/12/2020 à 19:30, Fred a dit :

Mais si j'ai le temps demain, je voudrais reprendre cet algorithme afin d'inclure les échecs de captcha comme des échecs de mot de passe.

Les testeurs sont les bienvenus.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, Fred a dit :

Les testeurs sont les bienvenus.

Devines qui va s'y coller....par contre pour les remontées heu le 31/12, le 01/01 ou plus tard? Je dis ça car j'ai prévu de faire pêter le champ chez moi et je risque de pas avoir trop les yeux en face des trous 🤪

 

Bon réveillon à tout les testeurs de la galaxie Zwii, on se retrouve bientôt les amis.

Roger

Partager ce message


Lien à poster
Partager sur d’autres sites

Installation de la version de test 10313 depuis le nouveau dépot (là aussi je teste la fiabilité des téléchargements)

👉 OK se fait sans aucuns soucis

https://forge.chapril.org/ZwiiCMS-Team/ZwiiCMS/src/branch/10313

 

Mes conditions de tests:

Je me met dans la peau du parfait débutant et vais donc reproduire le type d"erreur souvent rencontré par celui ci:

- erreur de login à la connexion par 3 fois, oubli du mot de passe et touti.

- test ensuite de l'interface du zwii (faut que je comprenne en parfait débutant tout ce qui est expliqué dedans)

- ensuite créations diverses..

 

Le roadmap que je suis:
 

Citation

 

# Changelog

## Version 10.3.13
Modifications :
    - Système de données (JsonDB) :
        - Verrouillage des fichiers de données ouverts en écriture.
        - Message d'erreur littéral.
        - Sauvegarde des fichiers de données après un effacement et une écriture.
    - Google Analytics, option d'anonymisation.
    - Procédure de connexion : les erreurs de captcha sont comptabilisées comme des échecs, allégement des messages d'information.
Correction :
    - Notification de commentaire, nom de la page incorrect.
    - Thème : désactivation du changement de couleur du texte au survol d'un bouton standard.

 

 

A plus pour les premières remontées (je vais essayer de faire groupir pour le tout bien entendu)

Roger

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Modifications :

Premier test: sécurité de la connexion: erreur de connexion volontaire (mise sur 3 tentatives et 5mn de blocage)

Afin de vérifier la remise à zéro du compteur après un certain nombre d'erreurs avant l’extrême programmée.

- premier essai: avec 2 erreurs et login correct   VALIDE 

- second essai: avec 1 erreurs et login correct   VALIDE 

- dernier essai : avec 3 erreurs pour vérifier le blocage.   VALIDE 

- Erreur littérale:   VALIDE 

- Sauvegarde des fichiers de données après un effacement et une écriture.:   VALIDE 

Correction :

- Notification de commentaire, nom de la page incorrect:   VALIDE 
- Thème : désactivation du changement de couleur du texte au survol d'un bouton standard:

Ce qui peut prêter à interrogation....

- les captcha png dans le dossier /site/tmp/  qui enfle en nombre au fur et à mesure des connexions

(ceux qui ont un espace limité en taille ou fichiers sur leur serveur vont vite remplir celui ci)

Petites idées:

  Pour la notification des commentaires, posibilité de préciser dans quel article est déposé le nouveau commentaire.

Ce qui bloque ou ne fonctionne pas:

Rien trouvé chez moi, tout fonctionne.

 

Voilà, je laisse le reste à tester pour les amis.

Roger

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @roger

 

Merci de ton retour.

 

Les captchas sont effacés tous les jours, il y existe une procédure de nettoyage qui efface le contenu des sous-dossiers non vides compris.

 

Ok pour le nom de l'article dans le mail

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, Fred a dit :

Ok pour le nom de l'article dans le mail

Merci, cela va simplifier encore plus pour l'utilisateur final d'aller directement dans l'article concerné par un commentaire posé.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Fred non seulement c'est aussi plus clair pour le destinataire du mail mais c'est surtout parfait que tu ai réussi à intégrer ce fil d’Ariane menant directement sur le commentaire posté dans un article bien précis.

Tu l'as mis en ajout sur la version de test que je te rende compte illico du résultat?

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, roger a dit :

@Fred non seulement c'est aussi plus clair pour le destinataire du mail mais c'est surtout parfait que tu ai réussi à intégrer ce fil d’Ariane menant directement sur le commentaire posté dans un article bien précis.

Tu l'as mis en ajout sur la version de test que je te rende compte illico du résultat?

Oui avec la petite modification de l'initialisation de TinyMCE pour y intégrer du script et des code CSS

Partager ce message


Lien à poster
Partager sur d’autres sites

Petit retour suite à 'installation ce matin de la v10313.

- Installation OK

- .back : OK . Chaque fichier json qui se trouve dans /site a bien son .back créé quand on fait des modifications pour le fichier concerné. Les fichiers css n'ont pas cette protection. C'est un principe que j'aime bien et la possibilité de le conserver en option quand les problèmes seront résolus me semble intéressante.

- les messages d'erreur à la connexion :

     * un message identique quand l'identifiant ou le mot de passe ne sont pas complétés ou mauvais : OK

     * un message différent quand captcha non complétée ou mauvaise réponse : OK

     * un message quand on a fait plus de 3 tentatives infructueuses avec indication du temps de blocage : OK  (j'avais réglé sur 3 tentatives avec 5mn de blocage et je n'ai pas testé les autres possibilités)

- fichier blacklist pour les tentatives de connexion : OK. N'existe pas si pas de tentatives erronées. MAIS précédemment ce fichier enregistrait également les erreurs de connexion et pas seulement les tentatives à partir d'un id inexistant : le fonctionnement antérieur me semble préférable. Là les erreurs ne sont plus comptabilisées.

- téléchargement du fichier blacklist dans l'interface d'admin : KO. Il y a bien un fichier de téléchargé mais ne correspond pas, sauf la première ligne. cf fichier joint.

- réinitialisation du fichier blacklist : OK.

 

Il y a d'autres choses spécifiques à tester ?

site_tmp_blacklist (4).log

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...