Dotclear

Changeset 1886 for plugins/httpPassword


Ignore:
Timestamp:
11/15/09 21:46:57 (14 years ago)
Author:
wattoo
Message:

pricipalement debugmode

Location:
plugins/httpPassword
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • plugins/httpPassword/CHANGELOG

    r1134 r1886  
     10.5.9 : 
     2  - fix bug in history page (PHP errors when history was empty) 
     3  - add page "debug" in plugin page in order to get infos about hosting setup (when plugins fails to authenticate users) 
     4 
    150.5 : 
    26  - deep rewrite : HTTP auth is not directly handled by apache anymore but by a dotclear behavior 
  • plugins/httpPassword/_define.php

    r1697 r1886  
    1616     /* Description*/    "Manage .htpasswd file to make the blog private", 
    1717     /* Author */        "Frederic PLE <dotclear@frederic.ple.name>", 
    18      /* Version */       '0.5.3', 
     18     /* Version */       '0.5.9', 
    1919     /* Permissions */   'httpPassword' 
    2020); 
  • plugins/httpPassword/_install.php

    r1697 r1886  
    3131$settings->put('httppassword_message','Zone Privee','String','Message personnalisable dans le popup d\'authentification',false,false); 
    3232$settings->put('httppassword_trace',false,'boolean','Activation des traces (debug)',false,false); 
     33$settings->put('httppassword_debugmode',false,'boolean','Activation du mode Debug',false,false); 
    3334  
    3435$core->setVersion('httpPassword',$m_version); 
  • plugins/httpPassword/_public.php

    r1697 r1886  
    1313if ($core->blog->settings->httppassword_active) { 
    1414     $core->addBehavior('publicPrepend',array('httpPassword','Check')); 
    15      $core->addBehavior('publicPrepend',array('httpPassword','LastLogin')); 
     15     //$core->addBehavior('publicPrepend',array('httpPassword','LastLogin')); 
    1616} 
    1717 
     
    2828          } 
    2929     } 
     30 
     31     private static function __debugmode (&$core) { 
     32          $fic = fopen($core->blog->public_path . '/.debugmode','a'); 
     33          fprintf($fic,"\n%s\n%s\n", str_repeat('-', 30), date('Ymd-His')); 
     34          fprintf($fic,".... \$_SERVER =\n%s\n",var_export($_SERVER,true)); 
     35          fprintf($fic,".... \$_ENV =\n%s\n",var_export($_ENV,true)); 
     36          fprintf($fic,".... Apache headers =\n%s\n",var_export(apache_request_headers(),true)); 
     37     } 
    3038      
    3139     private static function __HTTP401(&$core) { 
     
    3745     public static function Check(&$core) { 
    3846          httpPassword::__debuglog($core,'ENV = ' . var_export($_ENV,true)); 
     47          if ($core->blog->settings->httppassword_debugmode) 
     48               httpPassword::__debugmode($core); 
    3949          if (isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW'])) { 
    4050               $PHP_AUTH_USER = $_SERVER['PHP_AUTH_USER']; 
     
    7080          unset($htpasswd); 
    7181          if (!$authenticated) httpPassword::__HTTP401($core); 
     82          else httpPassword::LastLogin(&$core,$PHP_AUTH_USER); 
    7283 
    7384          return(true); 
    7485     } 
    7586 
    76      public static function LastLogin(&$core) { 
     87     public static function LastLogin(&$core,$user) { 
    7788          $fic = $core->blog->public_path . '/.lastlogin'; 
    7889 
     
    8192               $httpPasswordLastLogin = unserialize(file_get_contents($fic)); 
    8293 
    83           $httpPasswordLastLogin[$PHP_AUTH_USER] = date('Y-m-d H:i'); 
     94          $httpPasswordLastLogin[$user] = date('Y-m-d H:i'); 
    8495 
    8596          file_put_contents($fic,serialize($httpPasswordLastLogin)); 
  • plugins/httpPassword/index.php

    r1697 r1886  
    8686 
    8787$core->blog->settings->setNamespace('httppassword'); 
     88 
     89$debugmodefile = $core->blog->public_path . '/.debugmode'; 
    8890 
    8991switch($action) { 
     
    157159          $core->blog->settings->httppassword_message = $message; 
    158160          break; 
     161 
     162     case "debugmode": 
     163          if ($_POST['debugmode'] === "true") 
     164               $debugmode = true; 
     165          else { 
     166               $debugmode = false; 
     167               if (is_file($debugmodefile)) 
     168                    unlink($debugmodefile); 
     169          } 
     170          $core->blog->settings->put( 
     171               'httppassword_debugmode', 
     172               $debugmode, 
     173               'boolean' 
     174          ); 
     175          $core->blog->settings->httppassword_debugmode = $debugmode; 
     176          break; 
    159177} 
    160178 
    161179$fic = $core->blog->public_path . '/.lastlogin'; 
    162 $httpPasswordLastLogin = array(); 
    163 if (is_file($fic)) 
     180if (is_file($fic)) { 
    164181     $httpPasswordLastLogin = unserialize(file_get_contents($fic)); 
     182     if ($httpPasswordLastLogin === false) $httpPasswordLastLogin = array(); 
     183} else 
     184     $httpPasswordLastLogin = array(); 
    165185 
    166186$form_block=' style="display: none;"'; 
     
    249269     <h3>S&eacute;curit&eacute; des mots de passe</h3> 
    250270     <p>Pour modifier la fonction de "cryptage".</p> 
    251      <p><strong>Attention, le changement de  
     271     <p><b>Attention, le changement de  
    252272     cryptage s'appliquera individuellement &agrave; la prochaine modification  
    253      de chacun des comptes (cr&eacute;tion ou changement de mot de passe).</strong></p> 
     273     de chacun des comptes (cr&eacute;tion ou changement de mot de passe)</b></p> 
    254274     <form method="post"> 
    255275<?php 
     
    283303?>   </p> 
    284304     </form> 
     305     </div> 
    285306</td> 
    286307<td> 
     
    307328<div id="histo" class="multi-part" 
    308329     title="Historique des derni&egrave;res connexions"> 
    309      <p>Nous sommes le <?php echo date('d-m-Y H:i'); ?>.</p> 
     330     <p>Nous sommes le <?php echo date('d-m-Y H:i'); ?></p> 
    310331     <table> 
    311332<?php 
     
    334355     <h3>Ajout d'un utilisateur</h3> 
    335356     <p>Pour ajouter un utilisateur, ajouter une nouvelle ligne 
    336      de la forme&nbsp;:</p> 
     357     de la forme:</p> 
    337358     <p class="fp-code"><tt>login:motdepasse</tt></p> 
    338359     <h3>Modifier un mot de passe</h3> 
    339360     <p>Pour modifier un mot de passe d'un utilisateur, ajouter 
    340361     &agrave; la suite de son identifiant (sur la m&ecirc;me ligne) 
    341      le texte suivant&nbsp;:</p> 
     362     le texte suivant:</p> 
    342363     <p class="fp-code"><tt>:motdepasse</tt></p> 
    343364     <h3>Suppression d'un utilisateur</h3> 
    344365     <p>Pour supprimer un utilisateur, supprimer la ligne de 
    345366     l'utilisateur.</p> 
     367</div> 
     368 
     369<div id="moddebug" class="multi-part" title="Debug"> 
     370     <p>Le plugin a &eacute;t&eacute; d&eacute;velopp&eacute; pour  
     371     fonctionner sur une installation "standard" de serveur Web 
     372     (PHP en module Apache).</p> 
     373     <p>Certains h&eacute;bergeurs utilisent des installations de 
     374     PHP en mode CGI, parfois assez sp&eacute;cifiques et 
     375     sur lesquelles ce plugin ne fonctionnera pas</p> 
     376     <p>Le mode debug permet de collecter des informations 
     377     n&eacute;cessaires au d&eacute;veloppeur pour adapter le plugin 
     378     &agrave; des contextes particuliers.</p> 
     379     <h3>Quand l'activer</h3> 
     380     <ul> 
     381     <li>Vous avez install&eacute; la derni&egrave;re version du plugin 
     382     (voir sur http://lab.dotclear.org/plugin/httpPassword)</li> 
     383     <li>Vous avez activ&eacute; le plugin</li> 
     384     <li>Vous avez cr&eacute;&eacute; un compte</li> 
     385     <li>Lorsque vous vous authentifiez sur le site, vous ne parvenez 
     386     pas &agrave; acc&eacute;der &agrave; la partie publique avec le  
     387     compte que vous avez cr&eacute;&eacute;</li> 
     388     </ul> 
     389     <h3>MISE EN GARDE</h3> 
     390     <p>le mode debug est 
     391     dangeureux. Il est imperatif de le desactiver juste apres 
     392     les tests.</p> 
     393     <h3>Protocole &agrave; suivre</h3> 
     394     <p>Le protocole est le suivant. Merci de le suivre pas &agrave; pas.</p> 
     395     <ol> 
     396     <li>Creer un compte "debug" dont le mot de passe est "test"</li> 
     397     <li>Activer le plugin</li> 
     398     <li>Activer le mode debug</li> 
     399     <li>Faire un essai d'authentification</li> 
     400     <li>Revenir sur cette page et copier le texte de la section "Resultats" 
     401     dans un mail</li> 
     402     <li>Joindre a ce mail le fichier .debugmode que vous trouverez 
     403     dans le répertoire public du blog</li> 
     404     <li>Envoyer le mail &agrave; dotclear@frederic.ple.name</li> 
     405     <li>Desactiver le mode debug</li> 
     406     <li>Supprimer le de compte "debug"</li> 
     407     <li>Attendre patiemment la r&eacute;ponse du gentil 
     408     d&eacute;veloppeur</li> 
     409     </ol> 
     410     <h3>Activer / D&eacute;dactiver le mode DEBUG</h3> 
     411     <form method="post"> 
     412     <p><input type="radio" name="debugmode" value="false" <?php if ($core->blog->settings->httppassword_debugmode === false) echo 'checked="checked" '; ?>/>Mode normal</p> 
     413     <p><input type="radio" name="debugmode" value="true" <?php if ($core->blog->settings->httppassword_debugmode === true) echo 'checked="checked" '; ?>/>Mode Debug</p> 
     414     <p><input type="submit" value="Modifier"/></p> 
     415<?php 
     416echo 
     417     $core->formNonce(). 
     418     form::hidden(array('p'),'httpPassword'). 
     419     form::hidden(array('httppasswordaction'),'debugmode'); 
     420?>   </p> 
     421     </form> 
     422<?php 
     423if (is_file($debugmodefile)) {  
     424//if (true) { 
     425?> 
     426     <h3>R&eacute;sultats</h3> 
     427     <div class="fp-code"><tt> 
     428<?php 
     429echo "* INFOS BLOG *<br />\n"; 
     430echo "URL: " . $core->blog->url . "<br />\n"; 
     431echo "IP: " . $_SERVER['SERVER_ADDR'] . "<br />\n"; 
     432echo "DocumentRoot: " . $_SERVER['DOCUMENT_ROOT'] . "<br />\n"; 
     433echo "DC2 version: " . $core->getVersion('core') . "<br />\n"; 
     434echo "DC2 path: " ."-" . "<br />\n"; 
     435echo "Plugins path: " . realpath(dirname(__FILE__) . '/..') . "<br />\n"; 
     436echo "Public path: " . $core->blog->public_path . "<br />\n"; 
     437echo "* INFOS HTTPPASSWD *<br />\n"; 
     438echo "Version: " . $core->getVersion('httpPassword') . "<br />\n"; 
     439//echo ".... \$_SERVER ....<br />" . str_replace("\n","<br />\n",var_export($_SERVER,true)) . "<br />\n"; 
     440//echo ".... \$_ENV ....<br />" . str_replace("\n","<br />\n",var_export($_ENV,true)) . "<br />\n"; 
     441//echo ".... HTTP Apache HEADERS ....<br />" . str_replace("\n","<br />\n",var_export(apache_request_headers(),true)) . "<br />\n"; 
     442//echo str_replace("\n","<br />\n",htmlentities(file_get_contents($debugmodefile))); 
     443?> 
     444     </tt></div> 
     445<?php } ?> 
    346446</div> 
    347447 
     
    361461<ul> 
    362462<li>Aux d&eacute;veloppeurs de Dotclear pour la grande qualit&eacute; du code</li> 
    363 <li>À Tomtom33, Moe et les autres qui m'ont aid&eacute; sur le 
     463<li>A Tomtom33, Moe, et les autres qui m'ont aid&eacute; sur le 
    364464<a href="http://forum.dotclear.net/">forum</a></li> 
    365 <li>À Pep de <a href="http://www.dotaddict.org/">DotAddict</a></li> 
    366 <li>À Stephanie "piloue" pour ses tests, ses suggestions et sa patience</li> 
    367 <li>À Gabriel Recope pour ses tests et reports de bugs.</li> 
     465<li>A Pep de <a href="http://www.dotaddict.org/">Dotaddict</a></li> 
     466<li>Stephanie "piloue" pour ses tests, ses suggestions et sa patience</li> 
     467<li>Gabriel Recope pour ses tests et reports de bugs.</li> 
    368468</ul> 
    369469 
Note: See TracChangeset for help on using the changeset viewer.

Sites map