pending commit, finished during MQ/S download ...
[platal.git] / htdocs / admin / utilisateurs.php
index 4d95057..3f17653 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2004 Polytechnique.org                              *
+ *  Copyright (C) 2003-2006 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -25,7 +25,7 @@ $page->assign('xorg_title','Polytechnique.org - Administration - Edit/Su/Log');
 require_once("emails.inc.php");
 require_once("user.func.inc.php");
 
-if (Session::has('suid')) {
+if (S::has('suid')) {
     $page->kill("déjà en SUID !!!");
 }
 
@@ -38,25 +38,25 @@ if (Env::has('user_id')) {
 }
 
 if(Env::has('logs_button') && $login) {
-    header("Location: logger.php?loguser=$login&year=".date('Y')."&month=".date('m'));
+    redirect("logger.php?loguser=$login&year=".date('Y')."&month=".date('m'));
 }
 
 if (Env::has('ax_button') && $login) {
-    header("Location: synchro_ax.php?user=$login");
+    redirect("synchro_ax.php?user=$login");
 }
 
 if(Env::has('suid_button') && $login) {
-    $_SESSION['log']->log("suid_start", "login by ".Session::get('forlife'));
+    $_SESSION['log']->log("suid_start", "login by ".S::v('forlife'));
     $_SESSION['suid'] = $_SESSION;
-    $r = $globals->xdb->query("SELECT id FROM aliases WHERE alias={?}", $login);
+    $r = XDB::query("SELECT id FROM aliases WHERE alias={?}", $login);
     if($uid = $r->fetchOneCell()) {
        start_connexion($uid,true);
-       header("Location: ../");
+       redirect("../");
     }
 }
 
 if ($login) {
-    $r  = $globals->xdb->query("SELECT  *, a.alias AS forlife
+    $r  = XDB::query("SELECT  *, a.alias AS forlife, u.flags AS sexe
                                   FROM  auth_user_md5 AS u
                             INNER JOIN  aliases       AS a ON ( a.id = u.user_id AND a.alias={?} AND type!='homonyme' )", $login);
     $mr = $r->fetchOneAssoc();
@@ -84,23 +84,32 @@ if ($login) {
 
            case "del_alias":
                if (!empty($val)) {
-                    $globals->xdb->execute("DELETE FROM aliases WHERE id={?} AND alias={?}
+                    XDB::execute("DELETE FROM aliases WHERE id={?} AND alias={?}
                             AND type!='a_vie' AND type!='homonyme'", $mr['user_id'], $val);
-                    fix_bestalias($nr['user_id']);
+                    fix_bestalias($mr['user_id']);
                     $page->trig($val." a été supprimé");
                 }
                break;
-
+        case "activate_fwd":
+        if (!empty($val)) {
+            $redirect->modify_one_email($val, true);
+        }
+        break;
+        case "deactivate_fwd":
+        if (!empty($val)) {
+            $redirect->modify_one_email($val, false);
+        }
+        break;
            case "add_alias":
-               $globals->xdb->execute("INSERT INTO  aliases (id,alias,type) VALUES  ({?}, {?}, 'alias')",
+               XDB::execute("INSERT INTO  aliases (id,alias,type) VALUES  ({?}, {?}, 'alias')",
                         $mr['user_id'], Env::get('email'));
                break;
 
            case "best":
                 // 'bestalias' is the first bit of the set : 1
                 // 255 is the max for flags (8 sets max)
-               $globals->xdb->execute("UPDATE  aliases SET flags= flags & (255 - 1) WHERE id={?}", $mr['user_id']);
-               $globals->xdb->execute("UPDATE  aliases
+               XDB::execute("UPDATE  aliases SET flags= flags & (255 - 1) WHERE id={?}", $mr['user_id']);
+               XDB::execute("UPDATE  aliases
                                            SET  flags= flags | 1
                                         WHERE  id={?} AND alias={?}", $mr['user_id'], $val);
                break;
@@ -108,32 +117,34 @@ if ($login) {
 
            // Editer un profil
            case "u_edit":
-               $pass_md5B = Env::get('newpass_clair') != "********" ? md5(Env::get('newpass_clair')) : Env::get('passw');
-                $naiss = Env::get('naissanceN');
-                $perms = Env::get('permsN');
-                $prenm = Env::get('prenomN');
-                $nom   = Env::get('nomN');
-                $promo = Env::getInt('promoN');
-                $nom   = Env::get('nomN');
-                $comm  = Env::get('commentN');
-
-               $query = "UPDATE auth_user_md5 SET
-                           naissance = '$naiss',
-                           password  = '$pass_md5B',
-                           perms     = '$perms',
-                           prenom    = '".addslashes($prenm)."',
-                           nom       = '".addslashes($nom)."',
-                           promo     = $promo,
-                           comment   = '".addslashes($comm)."'
-                         WHERE user_id = '{$mr['user_id']}'";
-               if ($globals->xdb->execute($query)) {
+            require_once('secure_hash.inc.php');
+            $pass_encrypted = Env::get('newpass_clair') != "********" ? hash_encrypt(Env::get('newpass_clair')) : Env::get('passw');
+            $naiss = Env::get('naissanceN');
+            $perms = Env::get('permsN');
+            $prenm = Env::get('prenomN');
+            $nom   = Env::get('nomN');
+            $promo = Env::getInt('promoN');
+            $sexe  = Env::get('sexeN');
+            $comm  = Env::get('commentN');
+
+            $query = "UPDATE auth_user_md5 SET
+                    naissance = '$naiss',
+                    password  = '$pass_encrypted',
+                    perms     = '$perms',
+                    prenom    = '".addslashes($prenm)."',
+                    nom       = '".addslashes($nom)."',
+                    flags     = '$sexe',
+                    promo     = $promo,
+                    comment   = '".addslashes($comm)."'
+                WHERE user_id = '{$mr['user_id']}'";
+            if (XDB::execute($query)) {
                     user_reindex($mr['user_id']);
 
                     require_once("diogenes/diogenes.hermes.inc.php");
                     $mailer = new HermesMailer();
                     $mailer->setFrom("webmaster@polytechnique.org");
                     $mailer->addTo("web@polytechnique.org");
-                    $mailer->setSubject("INTERVENTION ADMIN (".Session::get('forlife').")");
+                    $mailer->setSubject("INTERVENTION de ".S::v('forlife'));
                     $mailer->setTxtBody(preg_replace("/[ \t]+/", ' ', $query));
                     $mailer->send();
 
@@ -143,12 +154,12 @@ if ($login) {
                     require_once('nomusage.inc.php');
                     set_new_usage($mr['user_id'], Env::get('nomusageN'), make_username(Env::get('prenomN'), Env::get('nomusageN')));
                 }
-               $r  = $globals->xdb->query("SELECT  *, a.alias AS forlife
+                $r  = XDB::query("SELECT  *, a.alias AS forlife, u.flags AS sexe
                                               FROM  auth_user_md5 AS u
                                         INNER JOIN  aliases       AS a ON (u.user_id=a.id)
                                              WHERE  user_id = {?}", $mr['user_id']);
                 $mr = $r->fetchOneAssoc();
-               break;
+                break;
 
             // DELETE FROM auth_user_md5
            case "u_kill":
@@ -158,14 +169,14 @@ if ($login) {
                $mailer = new HermesMailer();
                $mailer->setFrom("webmaster@polytechnique.org");
                $mailer->addTo("web@polytechnique.org");
-               $mailer->setSubject("INTERVENTION ADMIN (".Session::get('forlife').")");
+               $mailer->setSubject("INTERVENTION de ".S::v('forlife'));
                $mailer->setTxtBody("\nUtilisateur $login effacé");
                $mailer->send();
                break;
        }
     }
 
-    $res = $globals->xdb->query("SELECT  UNIX_TIMESTAMP(start), host
+    $res = XDB::query("SELECT  UNIX_TIMESTAMP(start), host
                                   FROM  logger.sessions
                                  WHERE  uid={?} AND suid=0
                               ORDER BY  start DESC
@@ -174,7 +185,7 @@ if ($login) {
     $page->assign('lastlogin', $lastlogin);
     $page->assign('host', $host);
 
-    $page->assign('aliases', $globals->xdb->iterator(
+    $page->assign('aliases', XDB::iterator(
                 "SELECT  alias, type='a_vie' AS for_life,FIND_IN_SET('bestalias',flags) AS best,expire
                    FROM  aliases
                   WHERE  id = {?} AND type!='homonyme'