[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/annu/ -> pass_user_init.php (source)

   1  <?php
   2  
   3  
   4     /**
   5     
   6     * Reinitialise les mots de passe
   7     * @Version $Id: pass_user_init.php 7716 2013-03-16 23:52:10Z christian.westphal $ 
   8     
   9     * @Projet LCS / SambaEdu 
  10     
  11     * @auteurs jLCF jean-luc.chretien@tice.ac-caen.fr
  12     * @auteurs oluve olivier.le_monnier@crdp.ac-caen.fr
  13     * @auteurs wawa  olivier.lecluse@crdp.ac-caen.fr
  14     * @auteurs Equipe Tice academie de Caen
  15  
  16     * @Licence Distribue selon les termes de la licence GPL
  17     
  18     * @note 
  19     */
  20  
  21     /**
  22  
  23     * @Repertoire: annu
  24     * file: pass_user_init.php
  25     */
  26  
  27  
  28  
  29  
  30  
  31  include  "entete.inc.php";
  32  include  "ldap.inc.php";
  33  include  "ihm.inc.php";
  34  
  35  require_once  ("lang.inc.php");
  36  bindtextdomain('se3-annu',"/var/www/se3/locale");
  37  textdomain ('se3-annu');
  38  
  39  
  40  if ((is_admin("annu_can_read",$login)=="Y") || (is_admin("Annu_is_admin",$login)=="Y") || (is_admin("savajon_is_admin",$login)=="Y"))  {
  41  
  42      //Aide
  43      $_SESSION["pageaide"]="Annuaire";
  44      
  45      if (!isset($_SESSION['comptes_crees'])) {
  46          $_SESSION['comptes_crees'] = array(array())  ;  // un sous-tableau par compte ; le deuxième tableau est, dans l'ordre nom, prenom, classe (?? en fait, non) (ou 'prof'), uid, password
  47          array_splice($_SESSION['comptes_crees'], 0, 1);
  48      }
  49  
  50      echo "<h1>".gettext("Annuaire")."</h1>\n";
  51  
  52      $uid_init=$_GET['uid'];
  53  
  54      // Recherche d'utilisateurs dans la branche people
  55      $filter="(uid=$uid_init)";
  56      $ldap_search_people_attr = array("gecos","givenName","sn");
  57  
  58      $ds = @ldap_connect ( $ldap_server, $ldap_port );
  59      if ( $ds ) {
  60              $r = @ldap_bind ( $ds ); // Bind anonyme
  61              if ($r) {
  62                    // Recherche dans la branche people
  63                    $result = @ldap_search ( $ds, $dn["people"], $filter, $ldap_search_people_attr );
  64                    if ($result) {
  65                      $info = @ldap_get_entries ( $ds, $result );
  66                      if ( $info["count"]) {
  67                            for ($loop=0; $loop<$info["count"];$loop++) {
  68                               $gecos = $info[0]["gecos"][0];
  69                               
  70                               $prenom = $info[0]["givenname"][0];
  71                               $nom = $info[0]["sn"][0];
  72                               $tmp = preg_split ("/,/",$info[0]["gecos"][0],4);
  73                               $date_naiss=$tmp[1];
  74                               
  75                               switch ($pwdPolicy) {
  76                              case 0:        // date de naissance
  77                                  $userpwd=$date_naiss;
  78                                  echo gettext("Mot de passe r&#233;initialis&#233; &#224; la date de naissance : ");
  79                                  break;
  80                              case 1:        // semi-aleatoire
  81                                  exec("/usr/share/se3/sbin/gen_pwd.sh -s", $out);
  82                                  $userpwd=$out[0];
  83                                  echo gettext("Mot de passe r&#233;initialis&#233; &#224; : ");
  84                                  break;
  85                              case 2:        // aleatoire
  86                                  exec("/usr/share/se3/sbin/gen_pwd.sh -a", $out);
  87                                  $userpwd=$out[0];
  88                                  break;
  89                                  echo gettext("Mot de passe r&#233;initialis&#233; &#224; : ");
  90                              }
  91  
  92                                 echo $userpwd."<br><br>";
  93                               userChangedPwd($uid_init, $userpwd);
  94                               
  95                               // ajouter vérification de doublon en cas de modifs successives pour un même uid.
  96                               $doublon = false;
  97                               foreach($_SESSION['comptes_crees'] as &$key) {
  98                              if ($key['uid'] == $uid_init){  // doublon : mise à jour pwd
  99                                  $doublon = true;
 100                                  $key['pwd'] = $userpwd;
 101                                  break;
 102                              }
 103                          }
 104                          if (!$doublon) {
 105                              $nouveau = array('nom'=>"$nom", 'pre'=>"$prenom", 'uid'=>"$uid_init", 'pwd'=>"$userpwd");
 106                              $_SESSION['comptes_crees'][]=$nouveau;
 107                          }
 108                          $doublon = false;
 109  
 110                             }
 111                      }
 112                      
 113                  @ldap_free_result ( $result );
 114                    } else {
 115                      $error = gettext("Erreur de lecture dans l'annuaire LDAP");
 116                    }
 117  
 118              } else {
 119                    $error = gettext("Echec du bind anonyme");
 120              }
 121              @ldap_close ( $ds );
 122        } else {
 123              $error = gettext("Erreur de connection au serveur LDAP");
 124        }
 125        
 126  include("listing.inc.php");
 127  
 128  }
 129  
 130  include("pdp.inc.php");
 131  ?>
 132  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1