From: Pascal Corpet Date: Wed, 23 Feb 2005 12:53:13 +0000 (+0000) Subject: validations for homonyms : closes 291 X-Git-Tag: xorg/old~269 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=d245eb24d518cf2327a0c8d76ced30f0eeba35a0;p=platal.git validations for homonyms : closes 291 git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-491 --- diff --git a/bin/cron/homonymes.php b/bin/cron/homonymes.php new file mode 100755 index 0000000..feb1451 --- /dev/null +++ b/bin/cron/homonymes.php @@ -0,0 +1,43 @@ +#!/usr/bin/php4 -q +xdb->iterator("SELECT id, alias, expire FROM aliases WHERE expire < NOW() + $W_PERIOD AND type = 'alias'"); + +if ($resRobot->total()) { + require_once('validations/homonymes.inc.php'); + while ($old = $resRobot->next()) { + $res = $globals->xdb->query("SELECT alias AS forlife FROM homonymes INNER JOIN aliases ON(user_id = id) WHERE homonyme_id = {?} AND type='a_vie'", $old['id']); + $forlifes = $res->fetchColumn(); + $req = new HomonymeReq($old['id'], $old['alias'], $forlifes, $old['expire'] > date("Y-m-d")); + $req->submit(); + } +} + +?> diff --git a/include/validations.inc.php b/include/validations.inc.php index 8e03296..c64e720 100644 --- a/include/validations.inc.php +++ b/include/validations.inc.php @@ -73,6 +73,8 @@ class Validate var $stamp; var $unique; + // enable the refuse button + var $refuse = true; var $type; var $comments = Array(); diff --git a/include/validations/homonymes.inc.php b/include/validations/homonymes.inc.php new file mode 100644 index 0000000..1b4e979 --- /dev/null +++ b/include/validations/homonymes.inc.php @@ -0,0 +1,148 @@ +warning = $warning; + + $this->Validate($_uid, true, $this->title()); + + $this->refuse = false; + + $this->loginbis = $_loginbis; + + $this->homonymes_forlife = $_homonymes_forlife; + + } + + // }}} + // {{{ title() + + function title() { + return $this->warning?'alerte alias':'robot répondeur'; + } + + // }}} + // {{{ function get_request() + + function get_request($uid) + { + return parent::get_request($uid,$this->title); + } + + // }}} + // {{{ function formu() + + function formu() + { return 'include/form.valid.homonymes.tpl'; } + + // }}} + // {{{ function _mail_subj + + function _mail_subj() + { + return "[Polytechnique.org/Support] ".($this->warning?"Dans une semaine : suppression de l'alias":"Mise en place du robot")." $loginbis@polytechnique.org"; + } + + // }}} + // {{{ function _mail_body + + function _mail_body($isok) + { + global $globals; + return +" +Comme nous t'en avons informé par mail il y a quelques temps, +pour respecter nos engagements en terme d'adresses e-mail devinables, +tu te verras bientôt retirer l'alias ".$this->loginbis."@".$globals->mail->domain." pour +ne garder que ".$this->forlife."@".$globals->mail->domain.". + +Toute personne qui écrira à ".$this->loginbis."@".$globals->mail->domain." recevra la +réponse d'un robot qui l'informera que ".$this->loginbis."@".$globals->mail->domain." +est ambigu pour des raisons d'homonymie et signalera ton email exact."; + } + + // }}} + // {{{ function sendmail() + + function sendmail($isok) + { + if (!$isok) return false; + global $globals; + require_once('diogenes/diogenes.hermes.inc.php'); + $mailer = new HermesMailer; + $cc = "support+homonyme@".$globals->mail->domain; + $FROM = "\"Support Polytechnique.org\" <$cc>"; + $mailer->setSubject($this->_mail_subj()); + $mailer->setFrom($FROM); + $mailer->addTo("\"{$this->prenom} {$this->nom}\" <{$this->bestalias}@{$globals->mail->domain}>"); + $mailer->addCc($cc); + + $body = $this->prenom.",\n\n" + . $this->_mail_body($isok) + . (Env::has('comm') ? "\n\n".Env::get('comm') : '') + . "\n\nCordialement,\nL'équipe Polytechnique.org\n"; + + $mailer->setTxtBody(wordwrap($body)); + $mailer->send(); + } + // }}} + // {{{ function commit() + + function commit() + { + global $globals; + require_once('homonymes.inc.php'); + + switch_bestalias($this->uid, $this->loginbis); + if (!$this->warning) { + $globals->xdb->execute("UPDATE aliases SET type='homonyme',expire=NOW() WHERE alias={?}", $this->loginbis); + $globals->xdb->execute("REPLACE INTO homonymes (homonyme_id,user_id) VALUES({?},{?})", $this->uid, $this->uid); + } + + return true; + } + + // }}} +} + +// }}} + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: +?> diff --git a/templates/admin/valider.tpl b/templates/admin/valider.tpl index 834a5bd..45a18ee 100644 --- a/templates/admin/valider.tpl +++ b/templates/admin/valider.tpl @@ -60,7 +60,7 @@ - + {if $valid->refuse}{/if} diff --git a/templates/include/form.valid.homonymes.tpl b/templates/include/form.valid.homonymes.tpl new file mode 100644 index 0000000..118a628 --- /dev/null +++ b/templates/include/form.valid.homonymes.tpl @@ -0,0 +1,36 @@ +{*************************************************************************** + * Copyright (C) 2003-2004 Polytechnique.org * + * http://opensource.polytechnique.org/ * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * + ***************************************************************************} + + + Adresse litigieuse : + + {$valid->loginbis}@polytechnique.org + + + + Homonymes : + + {foreach from=$valid->homonymes_forlife item=o} + {$o} + {/foreach} + + + +{* vim:set et sw=2 sts=2 sws=2: *}