[PLUGIN] logInMyPluxml

Jerry WhamJerry Wham Member
janvier 2014 modifié dans Plugins
Voici un plugin qui permet de rendre Pluxml privé.
Les identifiants sont identiques à ceux de l'administration.

L'ensemble du site est ainsi privé.

Une connexion à la partie "lecture" n'ouvre pas une connexion à la partie administration et vice versa. Au contraire, quand l'une est ouverte, l'autre se ferme (pour le même utilisateur).

Le principe de connexion est celui de la page auth. Il ne devrait pas y avoir plus de problème de sécurité que la version d'origine du panneau de connexion.

Enjoy.

Historique :

19/01/2014 : V 1.0
19/01/2014 : V 1.1
Add : fonction de bannissement dérivée de celle de SebSauvage dans Shaarli.
Bug : correction du formulaire de connexion (apostrophe en trop au niveau du require)
19/01/2014 : V 1.2
Bug : redirection vers une page article
19/01/2014 : V 1.3
Add : déconnexion automatique si la session est expirée
Bug : Titre de la page de connexion

Réponses

  • Ho mais ça m'intéresse grandement ça ! :)

    Je teste...


    à plus,

    Gzyg
  • Je viens d'ajouter une fonction de bannissement pour limiter le brute force.
  • Cool...

    Sinon, si l'utilisateur quitte la page sans se déconnecter, y-a-t-il un moyen de déconnexion automatique après un temps déterminé ?


    à plus,

    Gyg
  • Autre question : peut-on prendre en compte les utilisateurs enregistrés sur un autre PluXml (un répertoire au-dessus) ?

    Ce que j'aimerais faire :

    PluXml-maître
    |__ pluxml1 (privé)
    |__ pluxml2 (privé)
    |__ pluxml3 (public)
    |__ etc...

    Les utilisateurs ne s'enregistrant que sur le maître (les autres pluxml1, 2, 3, etc... seraient juste quelques pages statiques sans articles et sans comm).

    Si en plus on pouvait déterminer des autorisations d'accès selon l'utilisateur (user1 peut lire pluxml1 et 2, user2 que le 1, user 3 aucun, etc...) ]:D

    Je suis conscient de la complexité du truc. ;)


    à plus,

    éricji
  • Jerry WhamJerry Wham Member
    janvier 2014 modifié
    [del]Il n'y a pas possibilité d'enregistrer un utilisateur pour plusieurs sites comme c'est le cas pour les thèmes par exemple. Donc gérer les autorisations d'accès selon les utilisateurs, ça me semble un peu chaud à faire.[/del]
    Je te dis une grosse %*ù$£ù$. Si tu dis que ton dossier data/configuration est celui du maître pour tous tes sites, les utilisateurs seront les mêmes pour tous tes sous-sites...

    Après, pour bloquer l'accès ou non des sous-sites, tu peux faire dans la méthode Index de logInMyPluxml :
    $string = '
    if (in_array('plxUtils::getRacine()' ,array('http://Pluxml-maitre/pluxml1','http://Pluxml-maitre/pluxml2') { (mettre ici le code actuel de la méthode Index) }';
    
    Le tableau contenant les urls des sites dont tu veux bloquer l'accès.

    Je pense que ça devrait fonctionner. Je t'avoue que je n'ai pas testé.
  • Au pire, je peux aussi faire une bonne vieille liste de .htaccess et .htpassword... Tant qu'il n'y a pas des centaines de milliers d'utilisateurs à inscrire... :D
    Ce qui ne sera pas le cas ! :lol:


    à plus,

    Gyg
  • Jerry WhamJerry Wham Member
    janvier 2014 modifié
    Mise à jour pour une déconnexion automatique si la session est expirée.

    @Gzyg : [del]ou un script qui te copie tes utilisateurs dans chaque sous-pluxml une fois l'inscription réalisée.
    Tu peux utiliser pour ça les hook plxAdminEditUser et plxAdminEditUsersXml.[/del]
    Je te dis une grosse %*ù$£ù$. Si tu dis que ton dossier data/configuration est celui du maître pour tous tes sites, les utilisateurs seront les mêmes pour tous tes sous-sites...
  • Je viens de remettre à jour les sources. Je m'étais planté lors de l'upload et j'avais envoyé la version de débug. J'en ai profité pour nettoyer un peu le code. Désolé 8o
  • GzygGzyg Member
    janvier 2014 modifié
    Je teste et je te dis ça. ;)

    edit : bon, j'ai un souci, mon fichier parametres.xml n'a pas de ligne racine_configuration correspondant au champ du dossier de configuration, du coup je ne peux pas tester... même en rajoutant la ligne en manuel... :(
    [== XML ==]
    <?xml version='1.0' encoding='UTF-8'?>
    <document>
            <parametre name="title"><![CDATA[Le Cynozophrène Mural]]></parametre>
            <parametre name="description"><![CDATA[Ancienne maison « Le Loup & Le Chien »]]></parametre>
            <parametre name="meta_description"><![CDATA[]]></parametre>
            <parametre name="meta_keywords"><![CDATA[]]></parametre>
            <parametre name="timezone"><![CDATA[Europe/Paris]]></parametre>
            <parametre name="allow_com">1</parametre>
            <parametre name="mod_com">0</parametre>
            <parametre name="mod_art">0</parametre>
            <parametre name="capcha">1</parametre>
            <parametre name="style"><![CDATA[LCM]]></parametre>
            <parametre name="clef"><![CDATA[ZSm1zsXAEh7XBCj]]></parametre>
            <parametre name="bypage">6</parametre>
            <parametre name="bypage_archives">6</parametre>
            <parametre name="bypage_admin">20</parametre>
            <parametre name="bypage_admin_coms">10</parametre>
            <parametre name="bypage_feed">8</parametre>
            <parametre name="tri"><![CDATA[desc]]></parametre>
            <parametre name="tri_coms"><![CDATA[asc]]></parametre>
            <parametre name="images_l">800</parametre>
            <parametre name="images_h">600</parametre>
            <parametre name="miniatures_l">200</parametre>
            <parametre name="miniatures_h">100</parametre>
            <parametre name="thumbs">1</parametre>
            <parametre name="images"><![CDATA[data/images/]]></parametre>
            <parametre name="documents"><![CDATA[data/documents/]]></parametre>
            <parametre name="racine_articles"><![CDATA[data/articles/]]></parametre>
            <parametre name="racine_commentaires"><![CDATA[data/commentaires/]]></parametre>
            <parametre name="racine_statiques"><![CDATA[data/statiques/]]></parametre>
            <parametre name="racine_themes"><![CDATA[themes/]]></parametre>
            <parametre name="racine_plugins"><![CDATA[plugins/]]></parametre>
            <parametre name="homestatic"><![CDATA[]]></parametre>
            <parametre name="hometemplate"><![CDATA[home.php]]></parametre>
            <parametre name="urlrewriting">0</parametre>
            <parametre name="gzip">1</parametre>
            <parametre name="feed_chapo">1</parametre>
            <parametre name="feed_footer"><![CDATA[]]></parametre>
            <parametre name="version">5.3</parametre>
            <parametre name="default_lang"><![CDATA[fr]]></parametre>
            <parametre name="userfolders">0</parametre>
            <parametre name="display_empty_cat">0</parametre>
    </document>
    
    
    à plus,

    Gzyg
  • Tu n'utilises pas la version 5.3... :rolleyes:
  • Petite correction d'un bug minime sur la page de connexion. Le titre du site n'apparaissait pas (car le mode utilisé n'est pas natif à pluxml).
  • GzygGzyg Member
    janvier 2014 modifié
    Si, si, la 5.3... mais j'ai déjà eu des soucis avec une archive bancale... je vais en reprendre une propre. :)

    edit : bon, ça ne change rien, toujours pas de ligne data_configuration...


    à plus,

    Gzyg
  • Jerry WhamJerry Wham Member
    janvier 2014 modifié
    En fait, c'est normal et c'est comme ça depuis un bon moment déjà (moi-> 8o ) .
    L'emplacement du dossier de configuration se paramètre dans les paramètres avancés de Pluxml. Lorsque tu enregistres, c'est la constante PLX_CONFIG_PATH qui est définie. Tu la trouveras dans le fichier config.php situé à la racine de Pluxml.

    Donc pour le dossier maître, tu auras 'data/configuration' et pour les dossier esclaves '../data/configuration'.
  • GzygGzyg Member
    janvier 2014 modifié
    OK, mais ça ne m'arrange pas, ça reprend TOUTES les configurations du pluxml-maître, or chaque pluxml doit garder les siennes (thèmes, config pages ou blog, etc...) et n'avoir en commun que les (éventuels) utilisateurs...

    Je vais peut-être remettre le nez dans mysql, il me semble qu'un sujet sur ce forum en parlait...


    Merci, en tout cas,

    à plus,

    Gzyg
  • romrom Member
    Bonjour,

    Je ne comprends pas bien comment installer ce plugin sur un Pluxml 5.3, pourriez-vous me donner des instructions ?

    Merci
    Rom
  • @Gzyg : ça ne modifiera pas toute la configuration. Les thèmes et les plugins seront conservés. Regarde dans le panneau d'administration les paramètres avancés, tu comprendras mieux.

    Sinon, si tu veux juste modifier le chemin vers le fichier utilisateurs, il faudra le faire à la main dans chaque sous-pluxml et penser à refaire le changement à chaque mise à jour de Pluxml.
    Le chemin est défini dans le fichier core/lib/config.php (chemin XMLFILE_USERS).

    @rom : tu cliques sur le lien du premier post. Une archive logInMyPluxml-master.zip va se charger sur ton poste. Tu la décompresses et tu renommes le dossier résultant en logInMyPluxml.
    Tu prends ce dossier et tu le places dans le dossier plugins/ de ton Pluxml.
    Tu te rends dans le panneau d'administration de ton Pluxml (avec des droits administrateur) et tu actives le plugin (onglets paramètres/plugins liens plugins inactifs) et c'est tout.
    Si tu te rends sur la partie publique de ton site, quelle que soit la page, tu auras un formulaire de connexion qui s'affichera temps que tu n'auras pas entré des identifiants corrects. Ces identifiants sont ceux utilisés dans la partie administration.
    Est-ce que c'est plus clair comme ça ?
  • romrom Member
    J'avais tout fait dans les clous, sauf renommer le dossier en enlevant "-master".

    Merci !
    Rom
Connectez-vous ou Inscrivez-vous pour répondre.