X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fadmin.php;h=a70bcd3266426268b1550576de6e16573b847799;hb=300325787a5d47336b64110034e582ae611341e0;hp=2e8f01a92e88ff2844e26eac624d26acde588a1b;hpb=5f9a40b42ae26275f205e65d74273d6b8d0d338e;p=platal.git diff --git a/modules/admin.php b/modules/admin.php index 2e8f01a..a70bcd3 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -258,7 +258,7 @@ class AdminModule extends PLModule $page->assign('session', $a = $res->fetchOneAssoc()); - $res = XDB::iterator('SELECT a.text, e.data, UNIX_TIMESTAMP(e.stamp) AS stamp + $res = XDB::iterator('SELECT a.text, e.data, e.stamp FROM logger.events AS e LEFT JOIN logger.actions AS a ON e.action=a.id WHERE e.session={?}', $arg); @@ -308,7 +308,7 @@ class AdminModule extends PLModule // get the requested sessions $where = $this->_makeWhere($year, $month, $day, $loguid); - $select = "SELECT s.id, UNIX_TIMESTAMP(s.start) as start, s.uid, + $select = "SELECT s.id, s.start, s.uid, a.alias as username FROM logger.sessions AS s LEFT JOIN aliases AS a ON (a.id = s.uid AND a.type='a_vie') @@ -345,7 +345,8 @@ class AdminModule extends PLModule $page->assign('xorg_title','Polytechnique.org - Administration - Logs des sessions'); } - function handler_user(&$page, $login = false) { + function handler_user(&$page, $login = false) + { $page->changeTpl('admin/utilisateurs.tpl'); $page->assign('xorg_title','Polytechnique.org - Administration - Edit/Su/Log'); require_once("emails.inc.php"); @@ -357,12 +358,15 @@ class AdminModule extends PLModule if (Env::has('user_id')) { $login = get_user_login(Env::i('user_id')); + if (empty($login)) { + $login = Env::i('user_id'); + } } elseif (Env::has('login')) { $login = get_user_login(Env::v('login')); } if(Env::has('logs_button') && $login) { - pl_redirect("admin/logger?login=$login&year=".date('Y')."&month=".date('m')); + pl_redirect("admin/logger?loguser=$login&year=".date('Y')."&month=".date('m')); } if (Env::has('ax_button') && $login) { @@ -380,12 +384,23 @@ class AdminModule extends PLModule } if ($login) { - $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); + if (is_numeric($login)) { + $r = XDB::query("SELECT *, a.alias AS forlife, u.flags AS sexe, + (year(naissance) > promo - 15 or year(naissance) < promo - 25) AS naiss_err + FROM auth_user_md5 AS u + LEFT JOIN aliases AS a ON (a.id = u.user_id AND type= 'a_vie') + WHERE u.user_id = {?}", $login); + } else { + $r = XDB::query("SELECT *, a.alias AS forlife, u.flags AS sexe, + (year(naissance) > promo - 15 or year(naissance) < promo - 25) AS naiss_err + 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(); - $redirect = new Redirect($mr['user_id']); + if (!is_numeric($login)) { //user has a forlife + $redirect = new Redirect($mr['user_id']); + } // Check if there was a submission foreach($_POST as $key => $val) { @@ -408,8 +423,9 @@ class AdminModule extends PLModule case "del_alias": if (!empty($val)) { - XDB::execute("DELETE FROM aliases WHERE id={?} AND alias={?} - AND type!='a_vie' AND type!='homonyme'", $mr['user_id'], $val); + XDB::execute("DELETE FROM aliases + WHERE id={?} AND alias={?} + AND type!='a_vie' AND type!='homonyme'", $mr['user_id'], $val); XDB::execute("UPDATE emails SET rewrite = '' WHERE uid = {?} AND rewrite LIKE CONCAT({?}, '@%')", @@ -470,8 +486,7 @@ class AdminModule extends PLModule if (XDB::execute($query)) { user_reindex($mr['user_id']); - require_once("diogenes/diogenes.hermes.inc.php"); - $mailer = new HermesMailer(); + $mailer = new PlMailer(); $mailer->setFrom("webmaster@polytechnique.org"); $mailer->addTo("web@polytechnique.org"); $mailer->setSubject("INTERVENTION de ".S::v('forlife')); @@ -483,10 +498,13 @@ class AdminModule extends PLModule if (Env::v('nomusageN') != $mr['nom_usage']) { set_new_usage($mr['user_id'], Env::v('nomusageN'), make_username(Env::v('prenomN'), Env::v('nomusageN'))); } - $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']); + if (Env::v('decesN') != $mr['deces']) { + user_clear_all_subs($mr['user_id'], false); + } + $r = XDB::query("SELECT *, a.alias AS forlife, u.flags AS sexe + FROM auth_user_md5 AS u + LEFT JOIN aliases AS a ON (a.id = u.user_id AND type= 'a_vie') + WHERE u.user_id = {?}", $mr['user_id']); $mr = $r->fetchOneAssoc(); break; @@ -494,8 +512,7 @@ class AdminModule extends PLModule case "u_kill": user_clear_all_subs($mr['user_id']); $page->trig("'{$mr['user_id']}' a été désinscrit !"); - require_once("diogenes/diogenes.hermes.inc.php"); - $mailer = new HermesMailer(); + $mailer = new PlMailer(); $mailer->setFrom("webmaster@polytechnique.org"); $mailer->addTo("web@polytechnique.org"); $mailer->setSubject("INTERVENTION de ".S::v('forlife')); @@ -505,11 +522,11 @@ class AdminModule extends PLModule } } - $res = XDB::query("SELECT UNIX_TIMESTAMP(start), host - FROM logger.sessions - WHERE uid={?} AND suid=0 - ORDER BY start DESC - LIMIT 1", $mr['user_id']); + $res = XDB::query("SELECT start, host + FROM logger.sessions + WHERE uid={?} AND suid=0 + ORDER BY start DESC + LIMIT 1", $mr['user_id']); list($lastlogin,$host) = $res->fetchOneRow(); $page->assign('lastlogin', $lastlogin); $page->assign('host', $host); @@ -519,7 +536,9 @@ class AdminModule extends PLModule FROM aliases WHERE id = {?} AND type!='homonyme' ORDER BY type!= 'a_vie'", $mr["user_id"])); - $page->assign('emails',$redirect->emails); + if ($mr['perms'] != 'pending') { + $page->assign('emails',$redirect->emails); + } $page->assign('mr',$mr); } @@ -549,15 +568,15 @@ class AdminModule extends PLModule // on examine l'op a effectuer switch ($op) { case 'mail': - send_warning_homonyme($prenom, $nom, $forlife, $loginbis); - switch_bestalias($target, $loginbis); + send_warning_homonyme($prenom, $nom, $forlife, $loginbis); + switch_bestalias($target, $loginbis); $op = 'list'; break; case 'correct': - switch_bestalias($target, $loginbis); + switch_bestalias($target, $loginbis); XDB::execute("UPDATE aliases SET type='homonyme',expire=NOW() WHERE alias={?}", $loginbis); XDB::execute("REPLACE INTO homonymes (homonyme_id,user_id) VALUES({?},{?})", $target, $target); - send_robot_homonyme($prenom, $nom, $forlife, $loginbis); + send_robot_homonyme($prenom, $nom, $forlife, $loginbis); $op = 'list'; break; } @@ -629,15 +648,15 @@ class AdminModule extends PLModule $res = XDB::iterRow("SELECT user_id,matricule,nom,prenom,deces FROM auth_user_md5 WHERE promo = {?}", $promo); while (list($uid,$mat,$nom,$prenom,$deces) = $res->next()) { $val = Env::v($mat); - if($val == $deces || empty($val)) continue; - XDB::execute('UPDATE auth_user_md5 SET deces={?} WHERE matricule = {?}', $val, $mat); - $new_deces[] = array('name' => "$prenom $nom", 'date' => "$val"); - if($deces=='0000-00-00' or empty($deces)) { - require_once('notifs.inc.php'); - register_watch_op($uid, WATCH_DEATH, $val); - require_once('user.func.inc.php'); - user_clear_all_subs($uid, false); // by default, dead ppl do not loose their email - } + if($val == $deces || empty($val)) continue; + XDB::execute('UPDATE auth_user_md5 SET deces={?} WHERE matricule = {?}', $val, $mat); + $new_deces[] = array('name' => "$prenom $nom", 'date' => "$val"); + if($deces=='0000-00-00' or empty($deces)) { + require_once('notifs.inc.php'); + register_watch_op($uid, WATCH_DEATH, $val); + require_once('user.func.inc.php'); + user_clear_all_subs($uid, false); // by default, dead ppl do not loose their email + } } $page->assign('new_deces',$new_deces); } @@ -703,7 +722,7 @@ class AdminModule extends PLModule } if(Env::has('uid') && Env::has('type') && Env::has('stamp')) { - $req = Validate::get_request(Env::v('uid'), Env::v('type'), Env::v('stamp')); + $req = Validate::get_typed_request(Env::v('uid'), Env::v('type'), Env::v('stamp')); if($req) { $req->handle_formu(); } }