[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ -> inc-login.php (source)

   1  <?php
   2  /*****************************************************
   3  * This file is part of Agora, web based content management system.
   4  *
   5  * Agora is free software; you can redistribute it and/or modify
   6  * it under the terms of the GNU General Public License as published by
   7  * the Free Software Foundation; version 2 of the License.
   8  *
   9  * Agora is distributed in the hope that it will be useful,
  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  * GNU General Public License for more details (file "COPYING").
  13  *
  14  * Copyright © Arnaud Martin, Antoine Pitrou et Philippe Rivière.
  15  * List of authors detailed in "copyright_fr.html" file.
  16  * E-mail : agora@sig.premier-ministre.gouv.fr
  17  * Web site : http://www.agora.gouv.fr
  18  *****************************************************/
  19  // Ajout Clever Age elebescond
  20  require_once (dirname(__FILE__). "/ecrire/include/bd/inc_auteur_factory.php");
  21  /******* Ajout EXTRANET guillaume.grason@diplomatie.gouv.fr *******/
  22  require_once (dirname(__FILE__)."/ecrire/include/bd/inc_extranaute_factory.php");
  23  /******* Fin Ajout EXTRANET guillaume.grason@diplomatie.gouv.fr *******/
  24  require_once (dirname(__FILE__). "/ecrire/include/bd/inc_profil_factory.php");
  25  
  26  // Fin ajout
  27  
  28  //
  29  // Ce fichier ne sera execute qu'une fois
  30  if (defined("_INC_LOGIN"))
  31      return;
  32  
  33  define("_INC_LOGIN", "1");
  34  
  35  include_once  ("ecrire/inc_meta.php");
  36  include_once  ("ecrire/inc_session.php");
  37  include_once  ("ecrire/inc_filtres.php");
  38  include_once  ("ecrire/inc_texte.php");
  39  include_once  ("inc-formulaires.php");
  40  
  41  // gerer l'auth http
  42  function auth_http ($cible, $essai_auth_http) {
  43      if ($essai_auth_http == 'oui') {
  44          include_once  ('inc_session.php');
  45  
  46          if (!verifier_php_auth()) {
  47              $url = urlencode($cible->getUrl());
  48              $page_erreur = "<strong>" . _T('login_connexion_refusee'). "</strong><p>" . _T(
  49                                                                                              'login_login_pass_incorrect'). "<p>[<a href='./'>" . _T(
  50                                                                                                                                                       'login_retour_site'). "</a>] [<a href='./spip_cookie.php?essai_auth_http=oui&url=$url'>" . _T('login_nouvelle_tentative'). "</a>]";
  51  
  52              if (ereg("ecrire/", $url))
  53                  $page_erreur .= " [<a href='ecrire/'>" . _T('login_espace_prive'). "</a>]";
  54              ask_php_auth ($page_erreur);
  55          }
  56          else
  57              @header ("Location: " . $cible->getUrl());
  58          exit;
  59      }
  60      // si demande logout auth_http
  61      else if ($essai_auth_http == 'logout') {
  62          include_ecrire  ('inc_session.php');
  63          ask_php_auth ("<strong>" . _T('login_deconnexion_ok'). "</strong><p>" . _T(
  64                                                                                      'login_verifiez_navigateur'). "<p>[<a href='./'>" . _T(
  65                                                                                                                                              'login_retour_public'). "</a>] [<a href='./spip_cookie.php?essai_auth_http=oui&redirect=ecrire'>" . _T('login_test_navigateur'). "</a>] [<a href='ecrire/'>" . _T('login_espace_prive'). "</a>]");
  66          exit;
  67      }
  68  }
  69  
  70  function ouvre_login ($titre = '') {
  71      $retour .= "<div>";
  72  
  73      if ($titre)
  74          $retour .= "<h3 class='spip'>$titre</h3>";
  75  
  76      //$retour .= '<font size="2" face="Verdana,arial,helvetica,sans-serif">';
  77      return $retour;
  78  }
  79  
  80  function ferme_login () {
  81      //$retour =  "</font>";
  82      $retour .= "</div>";
  83      return $retour;
  84  }
  85  
  86  function login ($cible = '', $prive = 'prive', $message_login = '') {
  87      $login = $GLOBALS['var_login'];
  88      $erreur = '';
  89      $essai_auth_http = $GLOBALS['var_essai_auth_http'];
  90      $logout = $GLOBALS['var_logout'];
  91  
  92      // en cas d'echec de cookie, inc_auth a renvoye vers spip_cookie qui
  93      // a tente de poser un cookie ; s'il n'est pas la, c'est echec cookie
  94      // s'il est la, c'est probablement un bookmark sur bonjour=oui,
  95      // et pas un echec cookie.
  96      if ($GLOBALS['var_echec_cookie'])
  97          /********** Modification SPIP_COOKIE johnny.muller@ypok.com **********/
  98          $echec_cookie = ($GLOBALS[$GLOBALS['cookie_prefix']. '_session'] != 'test_echec_cookie');
  99      //$echec_cookie = ($GLOBALS['spip_session'] != 'test_echec_cookie');
 100      /********** Fin modification SPIP_COOKIE johnny.muller@ypok.com **********/
 101  
 102      global $auteur_session;
 103      global $spip_session, $PHP_AUTH_USER, $ignore_auth_http;
 104      global $spip_admin;
 105      global $php_module;
 106      global $clean_link;
 107  
 108      if (!$cible) {
 109          if ($GLOBALS['var_url'])
 110              $cible = new Link($GLOBALS['var_url']);
 111          else if ($prive)
 112              $cible = new Link('ecrire/');
 113          else
 114              $cible = $clean_link;
 115      }
 116  
 117      $cible->delVar('var_erreur');
 118      $cible->delVar('var_url');
 119      $clean_link->delVar('var_erreur');
 120      $clean_link->delVar('var_login');
 121  
 122      include_once  ("ecrire/inc_session.php");
 123      verifier_visiteur();
 124      $profilMetier = &recuperer_instance_profil();
 125      $monProfil1 = $profilMetier->getProfilForIntitule('item_non_abonne');
 126  
 127      if (PEAR::isError($monProfil1)) {
 128          die ($monProfil1->getMessage());
 129      }
 130  
 131      $monProfil2 = $profilMetier->getProfilForIntitule('item_administrateur');
 132  
 133      if (PEAR::isError($monProfil2)) {
 134          die ($monProfil2->getMessage());
 135      }
 136  
 137      if ($auteur_session AND !$logout AND
 138      // TODO : c quoi ce vieux residu ? 
 139                                  ($auteur_session['profil'] > $monProfil1->getPoids() - 1 AND $auteur_session['profil']
 140                                      <= $monProfil2->getPoids())) {
 141          $url = $cible->getUrl();
 142  
 143          if ($url != $GLOBALS['clean_link']->getUrl())
 144              @Header ("Location: $url");
 145  
 146          echo "<a href='$url' title='" . _T('login_par_ici'). "'>" . _T('login_par_ici'). "</a>\n";
 147          return;
 148      }
 149  
 150      // initialisations
 151      $nom_site = lire_meta('nom_site');
 152  
 153      if (!$nom_site)
 154          $nom_site = _T('info_mon_site_spip');
 155  
 156      $url_site = lire_meta('adresse_site');
 157  
 158      if (!$url_site)
 159          $url_site = "./";
 160  
 161      if ($GLOBALS['var_erreur'] == 'pass')
 162          $erreur = _T('login_erreur_pass');
 163  
 164      // Le login est memorise dans le cookie d'admin eventuel
 165      if (!$login) {
 166          if (ereg("^@(.*)$", $spip_admin, $regs))
 167              $login = $regs[1];
 168      }
 169      else if ($login == '-1')
 170          $login = '';
 171  
 172      $flag_autres_sources = $GLOBALS['ldap_present'];
 173  
 174      // quels sont les aleas a passer ?
 175      if ($login) {
 176          $login = addslashes($login);
 177          $auteurMetier = &recuperer_instance_auteur();
 178          $profilMetier = &recuperer_instance_profil();
 179          $monProfil = $profilMetier->getProfilForIntitule('texte_statut_poubelle');
 180  
 181          if (PEAR::isError($monProfil)) {
 182              die ($monProfil->getMessage());
 183          }
 184  
 185          $allAuteurs = $auteurMetier->getAllForLoginAndNotProfil($login, $monProfil->getPoids());
 186          
 187          if (PEAR::isError($allAuteurs)) {
 188              die ($allAuteurs->getMessage());
 189          }
 190          if (list(, $monAuteur) = each($allAuteurs)) {
 191              $id_auteur = $monAuteur->getAuteurId();
 192              $source_auteur = $monAuteur->getSource();
 193              $alea_actuel = $monAuteur->getAleaActuel();
 194              $alea_futur = $monAuteur->getAleaFutur();
 195          }
 196          else if (!$flag_autres_sources) {
 197              $erreur = _T('login_identifiant_inconnu', array('login' => $login));
 198              $login = '';
 199              @spip_setcookie("spip_admin", "", time() - 3600);
 200          }
 201      }
 202  
 203      // javascript pour le focus
 204      if ($login)
 205          $js_focus = 'document.form_login.session_password.focus();';
 206      else
 207          $js_focus = 'document.form_login.var_login.focus();';
 208  
 209      if ($echec_cookie == "oui") {
 210          echo ouvre_login(_T('erreur_probleme_cookie'));
 211          echo "<p><strong>" . _T('login_cookie_oblige'). "</strong> ";
 212          echo _T('login_cookie_accepte'). "\n";
 213      }
 214      else {
 215          echo ouvre_login();
 216          echo "<br />$message_login<br />\n";
 217      }
 218  
 219      if ($login) {
 220          // Affiche formulaire de login en incluant le javascript MD5
 221          $flag_challenge_md5 = ($source_auteur == 'spip');
 222  
 223          if ($flag_challenge_md5)
 224              echo "<script type=\"text/javascript\" src=\"ecrire/md5.js\"></script>";
 225  
 226          echo "<form name='form_login' action='./spip_cookie.php' method='post'";
 227  
 228          if ($flag_challenge_md5)
 229              echo " onSubmit='if (this.session_password.value) {
 230                  this.session_password_md5.value = calcMD5(\"$alea_actuel\" + this.session_password.value);
 231                  this.next_session_password_md5.value = calcMD5(\"$alea_futur\" + this.session_password.value);
 232                  this.session_password.value = \"\";                
 233              }'";
 234  
 235          echo ">\n";
 236          echo "<div class='spip_encadrer'>";
 237  
 238          if ($erreur)
 239              echo "<div class='reponse_formulaire'><strong>$erreur</strong></div><p>";
 240  
 241          if ($flag_challenge_md5) {
 242              // si javascript actif, on affiche le login en 'dur', et on le passe en champ hidden
 243              echo "<script type=\"text/javascript\"><!--\n" . "document.write('" . _T(
 244                                                                                        'login_login'). " <strong>$login</strong> <br /><font size=\\'2\\'>[<a href=\\'spip_cookie.php?cookie_admin=non&url=" . rawurlencode(
 245                                                                                                                                                                                                                    $clean_link->getUrl()). "\\'>" . _T('login_autre_identifiant'). "</a>]</font>');\n" . "//--></script>\n";
 246              echo "<input type='hidden' name='session_login_hidden' value='$login' />";
 247  
 248              // si javascript inactif, le login est modifiable (puisque le challenge n'est pas utilise)
 249              echo "<noscript>";
 250              echo "<font face='Georgia, Garamond, Times, serif' size='3'>";
 251              echo _T('login_non_securise'). " <a href=\"" . $clean_link->getUrl(). "\">" . _T('login_recharger'). "</a></font>\n";
 252          }
 253  
 254          echo "<label for=\"session_login\"><strong>" . _T('login_login2'). "</strong><br /></label>";
 255          echo "<input type='text' name='session_login' id='session_login' class='forml' value=\"$login\" size='40' />\n";
 256  
 257          if ($flag_challenge_md5)
 258              echo "</noscript>\n";
 259  
 260          echo "<br /><br />\n<label for=\"session_password\"><strong>" . _T('login_pass2'). "</strong><br /></label>";
 261          echo "<input type='password' name='session_password' id='session_password' class='forml' value=\"\" size='40' />\n";
 262          echo "<input type='hidden' name='essai_login' value='oui' />\n";
 263  
 264          echo "<br>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='session_remember' value='oui' id='session_remember'> ";
 265          echo "<label for='session_remember'>" . _T('login_rester_identifie'). "</label>";
 266  
 267          $url = $cible->getUrl();
 268          echo "<input type='hidden' name='url' value='$url' />\n";
 269          echo "<input type='hidden' name='session_password_md5' value='' />\n";
 270          echo "<input type='hidden' name='next_session_password_md5' value='' />\n";
 271          echo "<div class='bouton_login'><input type='submit' class='spip_bouton' name='submit' value='" . _T('bouton_valider'). "' /></div>\n";
 272          echo "</div>";
 273          echo "</form>";
 274      }
 275      else { // demander seulement le login
 276          $url = $cible->getUrl();
 277          $action = $clean_link->getUrl();
 278  
 279          echo "<form name='form_login' action='$action' method='post'>\n";
 280          echo "<div class='spip_encadrer'>";
 281  
 282          if ($erreur)
 283              echo "<div class='erreur_login'>$erreur</div><br />";
 284  
 285          echo "<label for=\"var_login\"><strong>" . _T('login_login2'). "</strong><br /></label>";
 286          echo "<input type='text' name='var_login' id='var_login' class='forml' value=\"\" size='40' />\n";
 287  
 288          echo "<input type='hidden' name='var_url' value='$url' />\n";
 289          echo "<div class='bouton_login'><input type='submit' class='spip_bouton' name='submit' value='" . _T('bouton_valider'). "' /></div>\n";
 290          echo "</div>";
 291          echo "</form>";
 292      }
 293  
 294      // Gerer le focus
 295      echo "<script type=\"text/javascript\"><!--\n" . $js_focus . "\n//--></script>\n";
 296  
 297      if ($echec_cookie == "oui" AND $php_module AND !$ignore_auth_http) {
 298          echo "<form action='spip_cookie.php' method='get'>";
 299          echo "<fieldset>\n<p>";
 300          echo _T('login_preferez_refuser'). " \n";
 301          echo "<input type='hidden' name='essai_auth_http' value='oui' /> ";
 302          $url = $cible->getUrl();
 303          echo "<input type='hidden' name='url' value='$url' />\n";
 304          echo "<div class='bouton_login'><input type='submit' name='submit' class='spip_bouton' value='" . _T('login_sans_cookiie'). "' /></div>\n";
 305          echo "</fieldset></form>\n";
 306      }
 307  
 308      //echo "\n<center>"; // debut du pied de login
 309  
 310      // Bouton s'inscrire
 311      $inscriptions_ecrire = (lire_meta("accepter_inscriptions") == "oui");
 312  
 313      if ((!$prive AND (lire_meta('accepter_visiteurs') == 'oui')OR (lire_meta('forums_publics')
 314                                                                        == 'abo'))OR ($prive AND $inscriptions_ecrire)) {
 315          echo '[<a href="spip_pass.php" target="spip_pass" onclick="' . "javascript:window.open('spip_pass.php', 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=450'); return false;\">" . _T('login_sinscrire'). '</a>]';
 316      }
 317  
 318      // Bouton oubli de mot de passe
 319      include_ecrire ("inc_mail.php");
 320  
 321      if (tester_mail()) {
 322          echo ' [<a href="spip_pass.php?oubli_pass=oui" target="spip_pass" title="' . _T(
 323                                                                                           'login_motpasseoublie'). '" onclick="' . "javascript:window.open('spip_pass.php?oubli_pass=oui', 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=280'); return false;\">" . _T(
 324                                                                                                                                                                                                                                                                                          'login_motpasseoublie'). '</a>]';
 325      }
 326  
 327      // Bouton retour au site public
 328      if ($prive)
 329          echo " [<a href='$url_site' title='" . _T('login_retoursitepublic'). "'>" . _T(
 330                                                                                          'login_retoursitepublic'). "</a>]";
 331  
 332      //echo "</center>\n";
 333  
 334      echo ferme_login();
 335  }
 336  /******* Ajout EXTRANET guillaume.grason@diplomatie.gouv.fr *******/
 337  function login_ex($cible = '') {
 338      $login = $GLOBALS['var_login'];
 339      $erreur = '';
 340      $logout = $GLOBALS['var_logout'];
 341  
 342      if ($GLOBALS['var_echec_cookie'])
 343          $echec_cookie = ($GLOBALS[$GLOBALS['cookie_prefix'].'_session_ex'] != 'test_echec_cookie');
 344  
 345      global $extranaute_session;
 346      global $spip_session_ex;
 347      global $php_module;
 348      global $clean_link;
 349  
 350      if (!$cible) {
 351          if ($GLOBALS['var_url']) $cible = new Link(urldecode($GLOBALS['var_url']));
 352          else $cible = $clean_link;
 353      }
 354      $cible->delVar('var_erreur');
 355      $cible->delVar('var_url');
 356      $clean_link->delVar('var_erreur');
 357      $clean_link->delVar('var_login');
 358  
 359      include_once ("inc-session.php");
 360      verifier_visiteur_ex();
 361      if ($GLOBALS['var_erreur'] =='no_access') {
 362          $url = urlencode($cible->getUrl());
 363          echo "<br />\n";
 364          echo "<div class='spip_encadrer'>\n";
 365          echo "    <div class='reponse_formulaire'><strong>"._T('login_erreur_no_access')."</strong></div>\n";
 366          echo "    <a href='spip_cookie_extranet.php?logout=".$extranaute_session['login']."&url=$url' title='"._T('login_autre_identite')."'>"._T('login_autre_identite')."</a>\n";
 367          echo "</div>\n";
 368          return;
 369      }
 370      elseif ($extranaute_session AND !$logout) {
 371          $url = $cible->getUrl();
 372          if ($url != $GLOBALS['clean_link']->getUrl())
 373              @Header("Location: $url");
 374          echo "<a href='$url' title='"._T('login_par_ici')."'>"._T('login_par_ici')."</a>\n";
 375          return;
 376      }
 377  
 378      // initialisations
 379      if ($GLOBALS['var_erreur'] =='pass') $erreur = _T('login_erreur_pass');
 380  
 381      if ($login == '-1')
 382          $login = '';
 383  
 384      // quels sont les aleas a passer ?
 385      if ($login) {
 386          $login = addslashes($login);
 387          $extranauteMetier = &recuperer_instance_extranaute();
 388          $allExtranautes = $extranauteMetier->getAllForLogin($login);
 389          if(PEAR::isError($allExtranautes)) {
 390              die($allExtranautes->getMessage());
 391          }
 392          
 393          if (list(,$monExtranaute) = each($allExtranautes))    {
 394              $id_extranaute = $monExtranaute->getExtranauteId();
 395          } else {
 396              $erreur = _T('login_identifiant_inconnu', array('login' => $login));
 397              $login = '';
 398          }
 399      }
 400          
 401      // javascript pour le focus
 402      if ($login)
 403          $js_focus = 'document.form_login.session_password.focus();';
 404      else
 405          $js_focus = 'document.form_login.var_login.focus();';
 406  
 407      if ($echec_cookie == "oui") {
 408          echo ouvre_login (_T('erreur_probleme_cookie'));
 409          echo "<p><strong>"._T('login_cookie_oblige')."</strong> ";
 410          echo _T('login_cookie_accepte')."\n";
 411      }
 412      else {
 413          echo ouvre_login ();
 414          echo "<br />$message_login<br />\n";
 415      }
 416  
 417      if ($login) {
 418          // Affiche formulaire de login en incluant le javascript MD5
 419  
 420          echo "<script type=\"text/javascript\" src=\"ecrire/md5.js\"></script>";
 421          echo "<form name='form_login' action='./spip_cookie_extranet.php' method='post'";
 422          echo " onSubmit='if (this.session_password.value) {
 423                  this.session_password_md5.value = calcMD5(this.session_password.value);
 424                  this.next_session_password_md5.value = calcMD5(this.session_password.value);
 425                  this.session_password.value = \"\";                
 426              }'";
 427          echo ">\n";
 428          echo "<div class='spip_encadrer'>";
 429          if ($erreur) echo "<div class='reponse_formulaire'><strong>$erreur</strong></div><p>";
 430  
 431          echo "<script type=\"text/javascript\"><!--\n" .
 432              "document.write('"._T('login_login')." <strong>$login</strong> <br /><font size=\\'2\\'>[<a href=\\'spip_cookie_extranet.php?cookie_admin=non&url=".rawurlencode($clean_link->getUrl())."\\'>"._T('login_autre_identifiant')."</a>]</font>');\n" .
 433              "//--></script>\n";
 434          echo "<input type='hidden' name='session_login_hidden' value='$login' />";
 435  
 436          // si jaja inactif, le login est modifiable (puisque le challenge n'est pas utilise)
 437          echo "<noscript>";
 438          echo "<font face='Georgia, Garamond, Times, serif' size='3'>";
 439          echo _T('login_non_securise')." <a href=\"".$clean_link->getUrl()."\">"._T('login_recharger')."</a></font>\n";
 440  
 441          echo "<label for=\"session_login\"><strong>"._T('login_login2')."</strong><br /></label>";
 442          echo "<input type='text' name='session_login' id='session_login' class='forml' value=\"$login\" size='40' />\n";
 443          echo "</noscript>\n";
 444  
 445          echo "<br /><br />\n<label for=\"session_password\"><strong>"._T('login_pass2')."</strong><br /></label>";
 446          echo "<input type='password' name='session_password' id='session_password' class='forml' value=\"\" size='40' />\n";
 447          echo "<input type='hidden' name='essai_login' value='oui' />\n";
 448  
 449          echo "<br>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='session_remember' value='oui' id='session_remember'> ";
 450          echo "<label for='session_remember'>"._T('login_rester_identifie')."</label>";
 451  
 452          $url = $cible->getUrl();
 453          echo "<input type='hidden' name='url' value='$url' />\n";
 454          echo "<input type='hidden' name='session_password_md5' value='' />\n";
 455          echo "<input type='hidden' name='next_session_password_md5' value='' />\n";
 456          echo "<div class='bouton_login'><input type='submit' class='spip_bouton' name='submit' value='"._T('bouton_valider')."' /></div>\n";
 457          echo "</div>";
 458          echo "</form>";
 459      }
 460      else { // demander seulement le login
 461  
 462          $url = $cible->getUrl();
 463          $action = $clean_link->getUrl();
 464  
 465          echo "<form name='form_login' action='$action' method='post'>\n";
 466          echo "<div class='spip_encadrer'>";
 467          if ($erreur) echo "<div class='erreur_login'>$erreur</div><br />";
 468          echo "<label for=\"var_login\"><strong>"._T('login_login2')."</strong><br /></label>";
 469          echo "<input type='text' name='var_login' id='var_login' class='forml' value=\"\" size='40' />\n";
 470  
 471          echo "<input type='hidden' name='var_url' value='$url' />\n";
 472          echo "<div class='bouton_login'><input type='submit' class='spip_bouton' name='submit' value='"._T('bouton_valider')."' /></div>\n";
 473          echo "</div>";
 474          echo "</form>";
 475      }
 476  
 477      // Gerer le focus
 478      echo "<script type=\"text/javascript\"><!--\n" . $js_focus . "\n//--></script>\n";
 479  
 480      echo ferme_login();
 481  }
 482  /******* Fin Ajout EXTRANET guillaume.grason@diplomatie.gouv.fr *******/
 483  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7