[plugin] plnPrivatePages : privatiser une partie du site
Bonjour à tous,
Un petit plugin qui permet de rendre privées des catégories et des pages statiques (au choix de l'administrateur).
Une page statique privée, ou une catégorie privée, ne seront accessibles que si l'utilisateur s'est connecté préalablement & dispose d'un niveau d'authentification (profil) suffisant.
Le plugin s'adosse au plugin (obligatoire) plnExtendedJurisdiction pour la gestion des comptes utilisateur.
Si vous souhaitez le télécharger pour l'essayer, voire pour jeter un œil dans le code, c'est par ici :
télécharger le plugin plnPrivatePages v1.0.2
Edit1: Mise à jour du lien de téléchargement vers la v0.2.
Edit2: Mise à jour du lien de téléchargement vers la v0.3.
Edit3: Modification de la présentation du plugin pour laisser l'essentiel.
Edit4: Changement du préfixe nom du plugin (plx => pln) & version v0.7
Edit5: Correction d'un bug et passage en v1.0
Edit 27/02/2016: Version 1.0.2 - Correction du bug lié au non-affichage des commentaires.
Un petit plugin qui permet de rendre privées des catégories et des pages statiques (au choix de l'administrateur).
Une page statique privée, ou une catégorie privée, ne seront accessibles que si l'utilisateur s'est connecté préalablement & dispose d'un niveau d'authentification (profil) suffisant.
Le plugin s'adosse au plugin (obligatoire) plnExtendedJurisdiction pour la gestion des comptes utilisateur.
Si vous souhaitez le télécharger pour l'essayer, voire pour jeter un œil dans le code, c'est par ici :
télécharger le plugin plnPrivatePages v1.0.2
Edit1: Mise à jour du lien de téléchargement vers la v0.2.
Edit2: Mise à jour du lien de téléchargement vers la v0.3.
Edit3: Modification de la présentation du plugin pour laisser l'essentiel.
Edit4: Changement du préfixe nom du plugin (plx => pln) & version v0.7
Edit5: Correction d'un bug et passage en v1.0
Edit 27/02/2016: Version 1.0.2 - Correction du bug lié au non-affichage des commentaires.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En l'occurrence, la plus grosse faille à mon sens est le fait que je fais les "blocages" au niveau du thème et non dans le code lui-même. Résultat, je suis assez persuadé que les fils RSS permettent de récupérer les articles privés... Mais j'ai une connaissance du code beaucoup trop parcellaire, actuellement, pour m'insérer dedans (si jamais les hooks qui le permettraient existent).
Cela te permettra d'écrire convenablement tes hooks et d'utiliser ceux déjà prévus par l'équipe de dev.
J'ai reconstruit la solution en adhérant beaucoup plus fortement au mode de fonctionnement de pluXml. En l'occurrence, j'effectue les blocages des parties privées aussi tôt que possible (plxMotorDemarrageBegin) et j'arrête d'utiliser les hooks d'arrêt à placer dans le thème (berk). J'utilise également la fonction error404 que je n'avais pas vue dans la première version et qui me sauve bien !
Je me suis également basé sur le thème par défaut de manière à être aussi proche du fonctionnement normal de pluXml que possible.
Je suis plutôt content du résultat : fonctionnel, mieux codé, facile à installer et utiliser, et a priori sécurisé. Ce dernier point mérite cependant éventuellement d'être vérifié par un expert pluXml
J'ai tenté de traiter tous les cas de figure qui peuvent apparaitre :
- mode static
- mode categorie
- mode article
- mode tags
- mode archives
Les modes suivant n'ont pas été traités parce que je n'ai pas trouvé de pertinence à le faire :
- preview : on considère que l'utilisateur a les droits du fait qu'il a accès au preview
- telechargement : aucune considération d'article dans ce mode
- home : utiliser l'option "masquer" sur la catégorie privée dans l'interface d'administration
J'ai également pris en compte les feed, même si c'est clairement la partie où je suis le moins bon.
Le test effectué : feed.php?rss/categorie1 renvoit une page sans aucun article alors qu'il y avait 2 articles dans cette catégorie privée. Ca interdit donc bien l'accès. Par contre, impossible de se connecter, ce qui ne semble pas problématique dans le cas d'un feed). J'ai tout simplement ajouté un hook plxFeedDemarrageBegin qui appelle la même fonction que le hook plxMotorDemarrageBegin.
Pour télécharger la version v0.2 : plxPrivatePages v0.2
Pour ceux veulent directement un pluXml de test (pluXml 5.3.1, thème par défaut, plxPrivatePages v0.2) : Environnement pluXml de dev. L'administrateur est admin/admin et un utilisateur plxPrivatePages existe : James/007.
Je te remonte plusieurs message d'erreurs et anomalies rencontrées en testant ton plugn
1) Pages statiques > Editer
Un résidu d'affichage en bas de page
2) Catégories > Options
Un résidu d'affichage en bas de page
3) fichier admin.php
Le code ci-dessous est affiché dans la partie body alors que ça devrait dans la partie head
Je n'ai pas pu faire + de tests car quand j'essaye de mettre en privé une page statique ou une catégorie, j'ai une page d'erreur avec les messages ci-dessus: aucune donnée ne peut être enregistrée
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
En ce qui concerne l'appel au css, bien noté, je modifierai ça à la prochaine version.
@Jerry Wham : Oui j'avais regardé ce qui existait déjà. Certains plugin sont trop peu conviviaux (obligation de mettre des mdp à chaque page privée), d'autres auraient pu me convenir ("adhesion" par exemple, que j'ai un peu étudié) mais comme je ne suis pas un spécialiste web et que je ne connaissais pas du tout pluXml à l'époque, j'ai vite abandonné toute idée de le modifier pour qu'il me convienne. En l'occurrence, la différence majeure avec adhesion est que je n'ai aucune interface d'adhésion côté public et que j'ai une saisie par lot côté privé (cette saisie par lot étant nécessaire, puisque je dois intégrer 120 personnes dans la base et que le faire à la main ne m'emballe pas plus que ça).
Notons tout de même que j'ai également vu ce petit défi comme une possibilité d'apprendre pluXml
@Jormun : Je vois bien ce que tu proposes, ça ne m'emballe que moyennement pour les raisons que tu évoques.
Dans PluXml mets en commentaire la ligne suivante dans le fichier core/lib/config.php
C'est peut etre pour ça que tu ne vois pas les erreurs
Remplace
par
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Nouvelle version : plxPrivatePages v0.3
Changelog :
- Retrait du bug de privatisation d'une page statique
- Retrait du bug de privatisation d'une catégorie
- Placement du css dans le <head> et non le <body> dans la page d'administration du plugin
Oui il fonctionne avec la version 1.5.3
Par contre le plugin est en cours de refonte complète et la version 1.0 sera très prochainement publié (cette semaine).
Attention GROS changements :
- Changement du nom (préfixe plx supprimé et remplacé par pln). Impacts éventuels : vos configurations précédentes de privatisation ne seront pas conservées.
- Adossement au plugin désormais obligatoire plnExtendedJurisdiction pour la gestion des comptes. Impacts éventuels : vos configurations précédentes de gestion des comptes sont perdues.
Je supprime via le FTP ces 2 plugins et je peux à nouveau accéder à l'administration.
Bien entendu, je suis en parallèle en train de réfléchir à une façon de détecter ce problème de double dépendance afin d'éviter un plantage catastrophique comme celui que tu as eu (je gère bien la détection de dépendance simple, mais je n'avais pas pensé aux dépendances récursives).
Pour m'aider, ce serait génial si tu pouvais installer les trois plugins et me dire si le problème est bien corrigé !
j'ai installé le plugin sur un site vierge pluxml version 5.3.1 pour un test.
Dès que j'installe le plugin, je n'arrive plus à accéder à l'administration du site.
J'ai eu plusieurs lignes qui se sont affichées à l'écran, ci-dessous les 2 dernières :
Erreur : plnPrivatePages est chargé 746 fois
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /public_html/pluxmltest/core/lib/class.plx.motor.php on line 351
j'ai bien installé les 2 plugins suivant :
plnExtendedJurisdiction et plnStaticPages
Jol5926
Peux-tu retester l'installation sur un pluXml vierge et me dire s'il y a le moindre message d'erreur sur la page des plugins une fois l'installation effectuée ? Par exemple :
Comme comme il ne faut pas laisser les tests au développeurs, ça ne marche pas !
j'attends de tes nouvelles pour faire de nouveaux tests
Bref, j'ai mis à jour le lien de téléchargement dans le premier message. Si tu peux me dire si ça va mieux...
Suggestion : actuellement un article privé doit faire partie obligatoirement d'une catégorie privée.
Est-il envisageable et possible d'avoir un article privé dans une catégorie non privée ??
Merci et bravo pour ton travail
plnKikan est chargé 2 fois
Erreur : plnPrivatePages est chargé 2 fois
Peux-tu me dire de quel plugin il s'agit ? Je vais regarder.
J'ai installé le plugin "ArtGalerie"
C'est sûr que c'est un plugin car sur le site de test, je n'ai pas ces messages d'erreur.
Quand l'utilisateur se connecte et il se trompe de mot de passe, y-a-t'il un message lui indiquant par exemple "mot de passe erroné" ?
Est-il possible d'afficher juste le titre d'un article caché quand on clique sur un mois dans archive ?
voilà, je demande peut-être beaucoup ?? mais tes plugins sont très intéressants.
par
Puis
par
Et finalement
par
Je fais un rapport d'incident sur le fil dédié
Non il n'y a pas de message d'erreur, je n'ai pas encore trouvé de manière pour afficher un message d'erreur de manière sympathique.
Est-il possible d'afficher juste le titre d'un article caché quand on clique sur un mois dans archive : je ne suis pas certain d'avoir bien compris la demande.
Dans la sidebar, tu as "Archives". Si un visiteur veut visualiser les articles dans cette archive, il ne voit pas l'article caché. J'aurais aimé que le titre de l'article puisse apparaitre dans la liste des archives sans pour autant le visualiser complètement.
Est-ce que j'ai était plus clair dans mes explications ?
Je teste tes modifications et te tiens au courant !!
Merci d'avance.
Modifications faites et tout est ok !!!