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());
{
$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);
}
}
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;
}
}
"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')
* 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;
}
<tr>
<td>
<textarea cols="80" rows="20" name="mailbody">
-{$prenom},
+{$user->displayName()},
Comme nous t'en avons informé par email il y a quelques temps,
pour respecter nos engagements en terme d'adresses email devinables,
tu te verras bientôt retirer l'alias {$loginbis}@{#globals.mail.domain#} pour
-ne garder que {$forlife}@{#globals.mail.domain#}.
+ne garder que {$user->forlifeEmail()}.
Toute personne qui écrira à {$loginbis}@{#globals.mail.domain#} recevra la
réponse d'un robot qui l'informera que {$loginbis}@{#globals.mail.domain#}
<tr>
<td>
<textarea cols="80" rows="20" name="mailbody">
-{$prenom},
+{$user->displayName()},
Comme nous t'en avons informé par email il y a quelques temps,
nous t'avons retiré de façon définitive l'adresse