From 191711d5aa707ee93b1f6ad386774e912637244d Mon Sep 17 00:00:00 2001 From: Florent Bruneau Date: Wed, 31 Dec 2008 01:32:26 +0100 Subject: [PATCH] Port homonyms stuff. Signed-off-by: Florent Bruneau --- include/validations/homonymes.inc.php | 5 +-- modules/admin.php | 27 ++++++------ .../admin/homonyms.inc.php | 48 ++++++++++++---------- templates/admin/homonymes.tpl | 6 +-- 4 files changed, 44 insertions(+), 42 deletions(-) rename include/homonymes.inc.php => modules/admin/homonyms.inc.php (63%) diff --git a/include/validations/homonymes.inc.php b/include/validations/homonymes.inc.php index 44f0234..5ed8ae0 100644 --- a/include/validations/homonymes.inc.php +++ b/include/validations/homonymes.inc.php @@ -121,9 +121,8 @@ est ambigu pour des raisons d'homonymie et signalera ton email exact."; public function commit() { - require_once('homonymes.inc.php'); - - switch_bestalias($this->user->id(), $this->loginbis); + Platal::load('admin', 'homonyms.inc.php'); + switch_bestalias($this->user, $this->loginbis); if (!$this->warning) { XDB::execute("UPDATE aliases SET type = 'homonyme', expire = NOW() WHERE alias = {?}", $this->loginbis); XDB::execute("REPLACE INTO homonymes (homonyme_id, user_id) VALUES({?}, {?})", $this->user->id(), $this->user->id()); diff --git a/modules/admin.php b/modules/admin.php index 47b97f4..4a9350e 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -762,15 +762,14 @@ class AdminModule extends PLModule { $page->changeTpl('admin/homonymes.tpl'); $page->setTitle('Administration - Homonymes'); - require_once("homonymes.inc.php"); + $this->load("homonyms.inc.php"); if ($target) { - if (! list($prenom,$nom,$forlife,$loginbis) = select_if_homonyme($target)) { - $target=0; + $user = User::getSilent($target); + if (!$user || !($loginbis = select_if_homonyme($user))) { + $target = 0; } else { - $page->assign('nom',$nom); - $page->assign('prenom',$prenom); - $page->assign('forlife',$forlife); + $page->assign('user', $user); $page->assign('loginbis',$loginbis); } } @@ -785,24 +784,24 @@ class AdminModule extends PLModule case 'mail': S::assert_xsrf_token(); - send_warning_homonyme($prenom, $nom, $forlife, $loginbis); - switch_bestalias($target, $loginbis); + send_warning_homonyme($user, $loginbis); + switch_bestalias($user, $loginbis); $op = 'list'; - $page->trigSuccess('Email envoyé à ' . $forlife . '.'); + $page->trigSuccess('Email envoyé à ' . $user->forlifeEmail() . '.'); break; case 'correct': S::assert_xsrf_token(); - switch_bestalias($target, $loginbis); + switch_bestalias($user, $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); + VALUES ({?}, {?})", $target, $target); + send_robot_homonyme($user, $loginbis); $op = 'list'; - $page->trigSuccess('Email envoyé à ' . $forlife . ', alias supprimé.'); + $page->trigSuccess('Email envoyé à ' . $user->forlifeEmail() . ', alias supprimé.'); break; } } @@ -812,7 +811,7 @@ class AdminModule extends PLModule "SELECT a.alias AS homonyme, s.alias AS forlife, IF(h.homonyme_id = s.id, a.expire, NULL) AS expire, IF(h.homonyme_id = s.id, a.type, NULL) AS type, - ac.uid AS user_id, ac.display_name AS prenom + ac.uid AS user_id FROM aliases AS a LEFT JOIN homonymes AS h ON (h.homonyme_id = a.id) INNER JOIN aliases AS s ON (s.id = h.user_id AND s.type='a_vie') diff --git a/include/homonymes.inc.php b/modules/admin/homonyms.inc.php similarity index 63% rename from include/homonymes.inc.php rename to modules/admin/homonyms.inc.php index 13a3076..8c50ce0 100644 --- a/include/homonymes.inc.php +++ b/modules/admin/homonyms.inc.php @@ -19,53 +19,57 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -function select_if_homonyme($uid) { - $res = XDB::query("SELECT prenom,nom,a.alias AS forlife,h.alias AS loginbis - FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON (a.id=u.user_id AND a.type='a_vie') - INNER JOIN aliases AS h ON (h.id=u.user_id AND h.expire!='') - WHERE user_id = {?}", $uid); - return $res->fetchOneRow(); +function select_if_homonyme(PlUser &$user) { + return XDB::fetchOneCell("SELECT a.alias + FROM aliases AS a + WHERE a.id = {?} AND a.expire != ''", + $user->id()); } -function send_warning_homonyme($prenom, $nom, $forlife, $loginbis) { +function send_warning_homonyme(PlUser &$user, $loginbis) { global $globals; $cc = "support+homonyme@" . $globals->mail->domain; $FROM = "\"Support Polytechnique.org\" <$cc>"; $mymail = new PlMailer(); $mymail->setFrom($FROM); - $mymail->setSubject("Dans 2 semaines, suppression de $loginbis@" . $globals->mail->domain); - $mymail->addTo("$prenom $nom <$forlife@" . $globals->mail->domain . '>'); $mymail->addCc($cc); + $mymail->setSubject("Dans 2 semaines, suppression de $loginbis@" . $globals->mail->domain); $mymail->setTxtBody(Env::v('mailbody')); - $mymail->send(); + $mymail->sendTo($user); } -function send_robot_homonyme($prenom, $nom, $forlife, $loginbis) { +function send_robot_homonyme(PlUser &$user, $loginbis) { global $globals; $cc = "support+homonyme@" . $globals->mail->domain; $FROM = "\"Support Polytechnique.org\" <$cc>"; $mymail = new PlMailer(); $mymail->setFrom($FROM); $mymail->setSubject("Mise en place du robot $loginbis@" . $globals->mail->domain); - $mymail->addTo("$prenom $nom <$forlife@" . $globals->mail->domain . '>'); $mymail->addCc($cc); $mymail->setTxtBody(Env::v('mailbody')); - $mymail->send(); + $mymail->sendTo($user); } -function switch_bestalias($uid, $loginbis) { +function switch_bestalias(PlUser &$user, $loginbis) { // check if loginbis was the bestalias - $res = XDB::query("SELECT alias FROM aliases WHERE id = {?} AND FIND_IN_SET('bestalias', flags)", $uid); - $bestalias = $res->fetchOneCell(); - if ($bestalias && $bestalias != $loginbis) return false; + $bestailas = XDB::fetchOneCell("SELECT alias + FROM aliases + WHERE id = {?} AND FIND_IN_SET('bestalias', flags)", + $user->id()); + if ($bestalias && $bestalias != $loginbis) { + return false; + } // select the shortest alias still alive - $res = XDB::query("SELECT alias FROM aliases WHERE id = {?} AND alias != {?} AND expire IS NULL ORDER BY LENGTH(alias) LIMIT 1", $uid, $loginbis); - $newbest = $res->fetchOneCell(); + $newbest = XDB::fetchOneCell("SELECT alias + FROM aliases + WHERE id = {?} AND alias != {?} AND expire IS NULL + ORDER BY LENGTH(alias) + LIMIT 1", $user->id(), $loginbis); // change the bestalias flag - XDB::execute("UPDATE aliases SET flags = (flags & (255 - 1)) | IF(alias = {?}, 1, 0) WHERE id = {?}", $newbest, $uid); - + XDB::execute("UPDATE aliases + SET flags = (flags & (255 - 1)) | IF(alias = {?}, 1, 0) + WHERE id = {?}", $newbest, $user->id()); return $newbest; } diff --git a/templates/admin/homonymes.tpl b/templates/admin/homonymes.tpl index 33c88c4..24890c1 100644 --- a/templates/admin/homonymes.tpl +++ b/templates/admin/homonymes.tpl @@ -75,13 +75,13 @@