[plugin] LockArticlesAndFiles - Protéger par mot de passe des articles et des fichiers

flipflipflipflip Member
28 avril modifié dans Plugins

Bonjour à tous,

Plugin pour PluXml permettant d'afficher des fichiers contenus dans un répertoire depuis la rédaction d'un article et de protéger l'article par un mot de passe.

Par défaut l'article est visible par tout les visiteurs. Si un mot de passe est appliqué à l'article alors un formulaire est affiché au visiteur lui demandant le mot de passe et les url d'accès aux fichiers sont cryptées et non accessible directement.

Téléchargement

Limitation

Testé sur PluXml 5.8.2

Pour le moment il est possible de définir un mot de passe uniquement pour les articles. Il est encore présent dans le code ce qui permet de définir un mot de passe pour les catégories et pages statiques mais tout est désactivé car non testé.

Configuration

Avant d'utiliser le plugin vous devez définir deux paramètres

Masquer les articles des catégories protégées de la home page

N'affiche pas les articles protégés par un mot de passe sur la page d'accueil.

Clé de cryptage utilisée pour la création des url des fichiers à télécharger

Par défaut PluXml utilise un salt pour crypter les url, afin d'augmenter la sécurité vous devez créer votre propre clé qui s'ajoutera au système de cryptage lors de génération des url des fichiers.

ATTENTION : il n'y a aucun contrôle sur ce champ, il est juste limité à 72 caractères. Si vous le laissez vide alors aucune clé ne sera utilisée et seul le salt de PluXml sera utilisé.

Dans le fichier article.php de votre thème ajouter :

<?php eval($plxShow->callHook('displayLockdir', $plxShow->plxMotor->plxRecord_arts->f('lockdir'))); ?>

Usage

Lors de la rédaction d'un article deux champs supplémentaire sont disponible dans la barre latéral droite.

Mot de passe
Vous permet de définir le mot de passe de votre article

Répertoire à lister
Vous permet de choisir quel répertoire listé dans l'article

Lorsque le visiteur affichera l'article tout les fichiers présents dans le répertoire seront affiché sous forme de tableau, si se sont des images alors la vignette sera visible.

Changelog

  • 1.3 - 28/04/2021

    • Correction suite à la mise à jour 1.2
  • 1.2 - 28/04/2021

    • Ajout d'une durée de vie de session. Si elle dépasse 5 mn alors le mot de passe est de nouveau demandé.
  • 1.1 - 19/04/2021

    • Ajout de la gestion du répertoire par utilisateur suivant le paramétrage de PluXml.
  • 1.0 - 14/04/2021

    • Mise à jour de la librairie PasswordHash;
    • Ajout du champ liste répertoire dans rédaction article.

Remerciement

Ce plugin est basé sur lockArticles de Rockyhorror et inspiré de kzDownload de bazooka07

J'ai un string de l'array

Réponses

  • Hey hey les humains,
    plugin valide avec pluxml-user de @bazooka07
    Mais, votre plugin ne peut pas être compatible si nous avons activé
    Utiliser un dossier médias différent pour chaque rédacteur : par défaut de pluxml
    Votre plugin devrait avoir une option, d'activé ou non le "Répertoire à lister "

    I'm the Doctor, and I declare this war is over!

  • flipflipflipflip Member
    19 avril modifié

    Mise à jour

    • 1.1 - 19/04/2021
      • Ajout de la gestion du répertoire par utilisateur, suivant le paramétrage de PluXml;

    Merci @thedoctor

    J'ai un string de l'array

  • Mise à jour

    • 1.2 - 28/04/2021
      • Ajout d'une durée de vie de session. Si elle dépasse 5 mn alors le mot de passe est de nouveau demandé.

    J'ai un string de l'array

  • Mise à jour

    • 1.3 - 28/04/2021
      • Correction suite à la mise à jour 1.2

    J'ai un string de l'array

  • Mise à jour

    • 1.4 - 28/04/2021
      • correction des Warning
      • correction suite à l'introduction de la durée de vie d'une session en 1.2

    J'ai un string de l'array

  • bazooka07bazooka07 Member
    28 avril modifié

    Bonjour,

    Il y a encore des petits bugs.

    Dans __construct(), les variables $path et $dir sont utilisées mais ne sont pas déclarées/initialisées :

            $this->path = $path;
            $this->dir = $dir;
    

    Dans plxMotorParseArticle(), tester la présence de $iTags['password'] n'est pas suffisant. Si la balise <password> est vide dans le fichier article, $iTags['password'][0] ]['value'] n'existe pas.

    Testé sous PHP 8.0 et PluXml 5.8.6.

Connectez-vous ou Inscrivez-vous pour répondre.