From: Pierre Habouzit (MadCoder Date: Sun, 12 Dec 2004 17:00:30 +0000 (+0000) Subject: XP arrives ... X-Git-Tag: xorg/old~684 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=a93411ed770fb33555069501dd79d471906aab08;p=platal.git XP arrives ... * Refactor code to make use of an XOrgError class. * track every place in the code that uses errors and make use of the new policy. git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-64 --- diff --git a/htdocs/TESTS/__init__.php b/htdocs/TESTS/__init__.php new file mode 100644 index 0000000..0672eb0 --- /dev/null +++ b/htdocs/TESTS/__init__.php @@ -0,0 +1,9 @@ + diff --git a/htdocs/TESTS/index.php b/htdocs/TESTS/index.php new file mode 100644 index 0000000..ef6fb19 --- /dev/null +++ b/htdocs/TESTS/index.php @@ -0,0 +1,24 @@ +GroupTest('All tests'); + foreach (glob(PATH.'/*_*.php') as $tfile) { + $this->addTestFile($tfile); + } + } +} + +$test = &new AllTests(); + +if (SimpleReporter::inCli()) +{ + exit ($test->run(new TextReporter()) ? 0 : 1); +} +$test->run(new HtmlReporter()); + +?> diff --git a/htdocs/TESTS/xorg_errors.inc.php b/htdocs/TESTS/xorg_errors.inc.php new file mode 100644 index 0000000..9309508 --- /dev/null +++ b/htdocs/TESTS/xorg_errors.inc.php @@ -0,0 +1,33 @@ +UnitTestCase('XOrgErrors Test'); + } + + function testCreatingXOrgErrors() { + $errors = new XOrgErrors(); + $this->assertIdentical($errors->errs, Array()); + $this->assertIdentical($errors->failure, false); + } + + function testTrigger() { + $errors = new XOrgErrors(); + $errors->trigger("Foo error"); + $this->assertIdentical($errors->errs, Array("Foo error")); + $this->assertIdentical($errors->failure, false); + } + + function testFail() { + $errors = new XOrgErrors(); + $errors->fail("Foo error"); + $this->assertIdentical($errors->errs, Array("Foo error")); + $this->assertIdentical($errors->failure, true); + } +} + +$test = &new TestOfXOrgErrors(); +$test->run(new HtmlReporter()); +?> diff --git a/htdocs/admin/utilisateurs.php b/htdocs/admin/utilisateurs.php index 67dcc75..16c3244 100644 --- a/htdocs/admin/utilisateurs.php +++ b/htdocs/admin/utilisateurs.php @@ -24,6 +24,14 @@ new_admin_page('admin/utilisateurs.tpl'); require_once("emails.inc.php"); /* + * Already in SUID ? + */ + +if (isset($_SESSION['suid'])) { + $page->kill("déjà en SUID !!!"); +} + +/* * LOGS de l'utilisateur */ @@ -53,8 +61,6 @@ if(isset($_REQUEST['suid_button']) and isset($_REQUEST['login']) and !isset($_SE * LE RESTE */ -$errors = Array(); - if (!empty($_REQUEST['login'])) { $needle = strtolower($_REQUEST['login']); @@ -70,7 +76,7 @@ if (!empty($_REQUEST['login'])) { if (list($redir) = mysql_fetch_row($res)) { list($login) = split('@', $redir); } else { - $errors[] = "il n'y a pas d'utilisateur avec cet alias melix"; + $page->trigger("il n'y a pas d'utilisateur avec cet alias melix"); } mysql_free_result($res); } else { @@ -82,9 +88,9 @@ if (!empty($_REQUEST['login'])) { if ($i) { $aliases = Array(); while (list($a) = mysql_fetch_row($res)) $aliases[] = $a; - $errors[] = "Il y a $i utilisateurs avec cette adresse mail : ".join(', ', $aliases) ; + $page->trigger("Il y a $i utilisateurs avec cette adresse mail : ".join(', ', $aliases)); } else { - $errors[] = "il n'y a pas d'utilisateur avec cette adresse mail"; + $page->trigger("il n'y a pas d'utilisateur avec cette adresse mail"); } } else { list($login) = mysql_fetch_row($res); @@ -102,7 +108,7 @@ if (!empty($_REQUEST['login'])) { if ($tmp = mysql_fetch_assoc($r)) { $mr =& $tmp; } else { - $errors[] = "il n'y a pas d'utilisateur avec ce login (ou alors il a des homonymes)"; + $page->trigger("il n'y a pas d'utilisateur avec ce login (ou alors il a des homonymes)"); } mysql_free_result($r); } @@ -127,11 +133,11 @@ if(isset($mr)) { case "add_fwd": $email = $_REQUEST['email']; if (!isvalid_email_redirection($email)) { - $errors[] = "invalid email $email"; + $page->trigger("invalid email $email"); break; } $redirect->add_email(trim($email)); - $errors[] = "Ajout de $email effectué"; + $page->trigger("Ajout de $email effectué"); break; case "del_fwd": @@ -144,7 +150,7 @@ if(isset($mr)) { $globals->db->query("DELETE FROM aliases WHERE id='{$_REQUEST['user_id']}' AND alias='$val' AND type!='a_vie' AND type!='homonyme'"); fix_bestalias($_REQUEST['user_id']); - $errors[] = $val." a été supprimé"; + $page->trigger($val." a été supprimé"); break; case "add_alias": @@ -186,7 +192,7 @@ if(isset($mr)) { fputs($f,"1"); fclose($f); - $errors[] = "updaté correctement."; + $page->trigger("updaté correctement."); // envoi du mail au webmaster require_once("diogenes.hermes.inc.php"); $mailer = new HermesMailer(); @@ -204,7 +210,7 @@ if(isset($mr)) { case "u_kill": require_once("user.func.inc.php"); user_clear_all_subs($_REQUEST['user_id']); - $errors[] = "'{$_REQUEST['user_id']}' a été désinscrit !"; + $page->trigger("'{$_REQUEST['user_id']}' a été désinscrit !"); require_once("diogenes.hermes.inc.php"); $mailer = new HermesMailer(); $mailer->setFrom("webmaster@polytechnique.org"); @@ -247,6 +253,5 @@ if(isset($mr)) { $page->assign('emails',$redirect->emails); } -$page->assign('errors',$errors); $page->run(); ?> diff --git a/htdocs/alias.php b/htdocs/alias.php index 17579cc..3fc21ac 100644 --- a/htdocs/alias.php +++ b/htdocs/alias.php @@ -41,7 +41,7 @@ if($result = $globals->db->query($sql)) { //Si l'utilisateur vient de faire une damande if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) { - $alias = $_REQUEST['alias']; + $alias = $_REQUEST['alias']; $raison = $_REQUEST['raison']; $page->assign('r_alias', $alias); @@ -49,17 +49,17 @@ if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) { //Quelques vérifications sur l'alias (caractères spéciaux) if (!preg_match( "/^[a-zA-Z0-9\-.]{3,20}$/", $alias)) { - $page->assign('error', "L'adresse demandée n'est pas valide. - Vérifie qu'elle comporte entre 3 et 20 caractères - et qu'elle ne contient que des lettres non accentuées, - des chiffres ou les caractères - et ."); + $page->trigger("L'adresse demandée n'est pas valide. + Vérifie qu'elle comporte entre 3 et 20 caractères + et qu'elle ne contient que des lettres non accentuées, + des chiffres ou les caractères - et ."); $page->run('error'); } else { //vérifier que l'alias n'est pas déja pris $result = $globals->db->query("SELECT 1 FROM virtual WHERE alias='$alias@{$globals->mail->alias_dom}'"); if (mysql_num_rows($result)>0) { - $page->assign('error', "L'alias $alias@{$globals->mail->alias_dom} a déja été attribué. - Tu ne peux donc pas l'obtenir."); + $page->trigger("L'alias $alias@{$globals->mail->alias_dom} a déja été attribué. + Tu ne peux donc pas l'obtenir."); $page->run('error'); } @@ -67,8 +67,8 @@ if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) { $it = new ValidateIterator (); while($req = $it->next()) { if ($req->type == "alias" and $req->alias == $alias) { - $page->assign('error', "L'alias $alias@{$globals->mail->alias_dom} a déja été demandé. - Tu ne peux donc pas l'obtenir pour l'instant."); + $page->trigger("L'alias $alias@{$globals->mail->alias_dom} a déja été demandé. + Tu ne peux donc pas l'obtenir pour l'instant."); $page->run('error'); } } diff --git a/htdocs/carnet/mescontacts.php b/htdocs/carnet/mescontacts.php index 0dd0431..b413ff7 100644 --- a/htdocs/carnet/mescontacts.php +++ b/htdocs/carnet/mescontacts.php @@ -28,16 +28,18 @@ if (isset($_REQUEST['action'])) { if($_REQUEST['action']=='retirer') { $user = $_REQUEST['user']; if (preg_match('/^\d+$/', $user)) { - if ($globals->db->query("DELETE FROM contacts WHERE uid = '{$_SESSION['uid']}' AND contact='{$user}'")) - $page->assign('erreur', "Contact retiré !\n"); + if ($globals->db->query("DELETE FROM contacts WHERE uid = '{$_SESSION['uid']}' AND contact='{$user}'")) { + $page->trigger("Contact retiré !"); + } } else { if ($globals->db->query( "DELETE FROM contacts USING contacts AS c INNER JOIN aliases AS a ON (c.contact=a.id and a.type!='homonyme') WHERE c.uid = '{$_SESSION['uid']}' AND a.alias='$user'" - )) - $page->assign('erreur', "Contact retiré !\n"); + )) { + $page->trigger("Contact retiré !"); + } } // si l'utilisateur demande l'ajout de qqun à sa liste @@ -46,11 +48,11 @@ if (isset($_REQUEST['action'])) { if (($res = $globals->db->query("SELECT id FROM aliases WHERE alias='{$_REQUEST['user']}' AND type!='homonyme'")) && mysql_num_rows($res)==1) { list($cont_user_id) = mysql_fetch_row($res); if ($globals->db->query("INSERT INTO contacts set uid = '{$_SESSION['uid']}', contact = '$cont_user_id'")) { - $page->assign('erreur', 'Contact ajouté !'); + $page->trigger('Contact ajouté !'); } else - $page->assign('erreur', 'Contact déjà dans la liste !'); + $page->trigger('Contact déjà dans la liste !'); } else { - $page->assign('erreur', 'Utilisateur inexistant ou non inscrit !'); + $page->trigger('Utilisateur inexistant ou non inscrit !'); } } } diff --git a/htdocs/carnet/notifs.php b/htdocs/carnet/notifs.php index 8dfc844..7c33735 100644 --- a/htdocs/carnet/notifs.php +++ b/htdocs/carnet/notifs.php @@ -25,13 +25,11 @@ require_once('notifs.inc.php'); $watch = new Watch($_SESSION['uid']); -$err = Array(); - if(isset($_REQUEST['promo'])) { if(preg_match('!^ *(\d{4}) *$!', $_REQUEST['promo'], $matches)) { $p = intval($matches[1]); if($p<1900 || $p>2100) { - $err[] = 'la promo entrée est invalide'; + $page->trigger("la promo entrée est invalide"); } else { if(isset($_REQUEST['add_promo'])) $watch->_promos->add($p); if(isset($_REQUEST['del_promo'])) $watch->_promos->del($p); @@ -40,15 +38,15 @@ if(isset($_REQUEST['promo'])) { $p1 = intval($matches[1]); $p2 = intval($matches[2]); if($p1<1900 || $p1>2100) { - $err[] = 'la première promo de la plage entrée est invalide'; + $page->trigger('la première promo de la plage entrée est invalide'); } elseif($p2<1900 || $p2>2100) { - $err[] = 'la seconde promo de la plage entrée est invalide'; + $page->trigger('la seconde promo de la plage entrée est invalide'); } else { if(isset($_REQUEST['add_promo'])) $watch->_promos->addRange($p1,$p2); if(isset($_REQUEST['del_promo'])) $watch->_promos->delRange($p1,$p2); } } else { - $err[] = "La promo (ou la plage de promo) entrée est dans un format incorrect."; + $page->trigger("La promo (ou la plage de promo) entrée est dans un format incorrect."); } } @@ -62,8 +60,5 @@ if(isset($_REQUEST['flags'])) { } $page->assign_by_ref('watch', $watch); -$page->assign_by_ref('err', $err); - $page->run(); - ?> diff --git a/htdocs/css/default.css b/htdocs/css/default.css index 738eea4..29aa71a 100644 --- a/htdocs/css/default.css +++ b/htdocs/css/default.css @@ -73,7 +73,7 @@ p { text-align: justify; } -p.error, span.error, p.erreur, span.erreur { +.erreur { font-weight: bold; color: #ff0000; background: inherit; diff --git a/htdocs/css/openweb.css b/htdocs/css/openweb.css index e7f6ae6..fe9fbe2 100644 --- a/htdocs/css/openweb.css +++ b/htdocs/css/openweb.css @@ -78,7 +78,7 @@ p { text-align: justify; } -p.error, span.error, p.erreur, span.erreur { +.erreur { font-weight: bold; color: #ff0000; background: inherit; diff --git a/htdocs/emails/broken.php b/htdocs/emails/broken.php index 98cf700..b77963d 100644 --- a/htdocs/emails/broken.php +++ b/htdocs/emails/broken.php @@ -61,7 +61,7 @@ L' $mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!"); $mail->setTxtBody($message); $mail->send(); - $page->assign('erreur', "Mail envoyé ! :o)"); + $page->trigger("Mail envoyé ! :o)"); } } elseif (array_key_exists('email', $_POST)) { $email = valide_email($_POST['email']); diff --git a/htdocs/emails/send.php b/htdocs/emails/send.php index 9db6665..71801fd 100644 --- a/htdocs/emails/send.php +++ b/htdocs/emails/send.php @@ -41,7 +41,7 @@ if (isset($_REQUEST['submit']) and $_REQUEST['submit'] == 'Envoyer' } if ($_REQUEST['to'] == '' and $_REQUEST['cc'] == '' and $autre_to == '') { - $page->assign('error',"Indique au moins un destinataire."); + $page->trigger("Indique au moins un destinataire."); } else { require_once("diogenes.hermes.inc.php"); //$_REQUEST['contenu'] = chunk_split($_REQUEST['contenu'], 76, "\n"); // pas bon, ne tient pas compte des mots @@ -54,10 +54,10 @@ if (isset($_REQUEST['submit']) and $_REQUEST['submit'] == 'Envoyer' if (!empty($_REQUEST['bcc'])) $mymail->addBcc($_REQUEST['bcc']); $mymail->setTxtBody(wordwrap($_REQUEST['contenu'],72,"\n")); if ($mymail->send()) { - $page->assign('error',"Ton mail a bien été envoyé."); + $page->trigger("Ton mail a bien été envoyé."); $_REQUEST = array(); } else { - $page->assign('error',"Erreur lors de l'envoi du courriel, réessaye.\n"); + $page->trigger("Erreur lors de l'envoi du courriel, réessaye."); } } // ! if ($_REQUEST['to'] == '' and $_REQUEST['cc'] == '') } diff --git a/htdocs/inscription/step3.php b/htdocs/inscription/step3.php index f5591de..e19b7ee 100644 --- a/htdocs/inscription/step3.php +++ b/htdocs/inscription/step3.php @@ -20,29 +20,35 @@ ***************************************************************************/ require_once("xorg.inc.php"); +new_skinned_page('inscription/step3.tpl', AUTH_PUBLIC); +require_once("identification.inc.php"); -$erreur = Array(); +$page->assign('mailorg', $mailorg); +$page->assign('forlife', $forlife); -require_once("identification.inc.php"); +if(!isvalid_email($_REQUEST["email"])) { + $page->trigger("Le champ 'E-mail' n'est pas valide."); +} -if(!isvalid_email($_REQUEST["email"])) - $erreur[] = "Le champ 'E-mail' n'est pas valide."; -if (!isvalid_email_redirection($_REQUEST["email"])) - $erreur[] = "\"$forlife@polytechnique.org\" doit renvoyer vers un email existant valide. En particulier, il ne peut pas être renvoyé vers lui-même."; -if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST["naissance"])) - $erreur[] = "La 'Date de naissance' n'est pas correcte. Elle est obligatoire pour continuer mais ne sera jamais visible sur le site par la suite."; +if (!isvalid_email_redirection($_REQUEST["email"])) { + $page->trigger("\"$forlife@polytechnique.org\" doit renvoyer vers un email existant valide. + En particulier, il ne peut pas être renvoyé vers lui-même."); +} + +if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST["naissance"])) { + $page->trigger("La 'Date de naissance' n'est pas correcte. + Elle est obligatoire pour continuer mais ne sera jamais visible sur le site par la suite."); +} -if(!empty($erreur)) { - new_skinned_page('inscription/step2.tpl', AUTH_PUBLIC); +if($page->nb_errs()) { + $page->changeTpl('inscription/step2.tpl'); require_once("applis.func.inc.php"); $page->assign('homonyme', $homonyme); $page->assign('loginbis', isset($loginbis) ? $loginbis : ''); - $page->assign('mailorg', $mailorg); $page->assign('prenom', $prenom); $page->assign('nom', $nom); - $page->assign('erreur', join("\n",$erreur)); $page->run(); } @@ -83,8 +89,5 @@ $mymail->assign('ins_id',$ins_id); $mymail->assign('subj',$forlife."@polytechnique.org"); $mymail->send(); -new_skinned_page('inscription/step3.tpl', AUTH_PUBLIC); -$page->assign('mailorg', $mailorg); -$page->assign('forlife', $forlife); $page->run(); ?> diff --git a/htdocs/inscription/step4.php b/htdocs/inscription/step4.php index 549f173..8f27e9c 100644 --- a/htdocs/inscription/step4.php +++ b/htdocs/inscription/step4.php @@ -25,122 +25,130 @@ new_skinned_page('inscription/step4.tpl', AUTH_PUBLIC); require_once("user.func.inc.php"); require_once('xorg.mailer.inc.php'); -define("ERROR_REF", 1); -define("ERROR_ALREADY_SUBSCRIBED", 2); -define("ERROR_DB", 3); - if (!empty($_REQUEST['ref'])) { $sql = "SELECT username,loginbis,matricule,promo,password". ",nom,prenom,nationalite,email,naissance,date". ",appli_id1,appli_type1,appli_id2,appli_type2". " FROM en_cours WHERE ins_id='".$_REQUEST["ref"]."'"; $res = $globals->db->query($sql); - //vérifions que la référence de l'utilisateur est - if (!list($forlife, $alias, $matricule, $promo, $password, $nom, $prenom,$nationalite, - $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res)) { - $page->assign('error',ERROR_REF); - $page->run(); - } - $page->assign('forlife',$forlife); - - // vérifions qu'il n'y a pas déjà une inscription dans le passé - // ce qui est courant car les double-clic... - $res = $globals->db->query("SELECT alias FROM aliases WHERE alias='$forlife'"); - if ( mysql_num_rows($res) != 0) { - $page->assign('error',ERROR_ALREADY_SUBSCRIBED); - $page->run(); - } - - $nom = stripslashes($nom); - $prenom = stripslashes($prenom); - $sql = "UPDATE auth_user_md5 SET password='$password', nationalite=$nationalite, perms='user', - date='$date', naissance='$naissance', date_ins = NULL WHERE matricule='$matricule'"; - $globals->db->query($sql); - $sql = "REPLACE INTO auth_user_quick (user_id) - SELECT user_id - FROM auth_user_md5 - WHERE matricule='$matricule'"; - $globals->db->query($sql); - - // on vérifie qu'il n'y a pas eu d'erreur - if ($globals->db->err()) { - $page->assign('error',ERROR_DB); - $page->assign('error_db',$globals->db->error()); - $page->run(); - } - // ok, pas d'erreur, on continue - $resbis=$globals->db->query("SELECT user_id FROM auth_user_md5 WHERE matricule='$matricule'"); - if ((list($uid) = mysql_fetch_row($resbis)) === false) { - $page->assign('error',ERROR_DB); - $page->assign('error_db',$globals->db->error()); - $page->run(); - } - - $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$forlife','a_vie')"); - if($alias) { - $p2 = sprintf("%02u",($promo%100)); - $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias','alias')"); - $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias.$p2','alias')"); - } - - // on cree un objet logger et on log l' - $logger = new DiogenesCoreLogger($uid); - $logger->log("inscription",$email); - - /****************** insertion de l'email dans la table emails + bogofilter ***/ - require_once("emails.inc.php"); - $redirect = new Redirect($uid); - $redirect->add_email($email); - fix_bestalias($uid); - /****************** ajout des formations ****************/ - if (($appli_id1>0)&&($appli_type1)) - $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id1,type='$appli_type1',ordre=0"); - if (($appli_id2>0)&&($appli_type2)) - $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id2,type='$appli_type2',ordre=1"); - /****************** envoi d'un mail au démarcheur ***************/ - /* si la personne a été marketingnisée, alors on prévient son démarcheur */ - $res = $globals->db->query("SELECT DISTINCT a.alias,e.date_envoi - FROM envoidirect AS e - INNER JOIN aliases AS a ON ( a.id = e.sender AND a.type='a_vie' ) - WHERE e.matricule = '$matricule'"); - while (list($sender_usern, $sender_date) = mysql_fetch_row($res)) { - $mymail = new XOrgMailer('marketing.thanks.tpl'); - $mymail->assign('to', $sender_usern); - $mymail->assign('prenom', $prenom); - $mymail->assign('nom',$nom); - $mymail->assign('promo',$promo); - $mymail->send(); - } - - // effacer la pré-inscription devenue - $globals->db->query("update en_cours set loginbis='INSCRIT' WHERE username='$forlife'"); - - // insérer l'inscription dans la table des notifications - require_once('notifs.inc.php'); - register_watch_op($uid,WATCH_INSCR); - inscription_notifs_base($uid); - - // insérer une ligne dans user_changes pour que les coordonnées complètes - // soient envoyées a l'AX - $globals->db->query("insert into user_changes ($uid)"); - - // envoi du mail à l'inscrit - $mymail = new XOrgMailer('inscription.reussie.tpl'); - $mymail->assign('forlife', $forlife); +} + +//vérifions que la référence de l'utilisateur est +if (empty($_REQUEST['ref'] || + !list( $forlife, $alias, $matricule, $promo, $password, $nom, $prenom,$nationalite, + $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res)) +{ + $page->kill("

Cette adresse n'existe pas, ou plus, sur le serveur.

+

Causes probables :

+
    +
  1. Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs.
  2. +
  3. Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main.
  4. +
  5. + Tu as peut-être attendu trop longtemps pour confirmer. Les + pré-inscriptions sont annulées tous les 30 jours. +
  6. +
"); +} + +$page->assign('forlife',$forlife); + +// vérifions qu'il n'y a pas déjà une inscription dans le passé +// ce qui est courant car les double-clic... +$res = $globals->db->query("SELECT alias FROM aliases WHERE alias='$forlife'"); +if (mysql_num_rows($res)) { + $page->kill("Tu es déjà inscrit à polytechnique.org. Tu as sûrement cliqué deux fois sur le même lien de + référence ou effectué un double clic. Consultes tes mails pour obtenir ton identifiant et ton + mot de passe."); +} + +$nom = stripslashes($nom); +$prenom = stripslashes($prenom); +$sql = "UPDATE auth_user_md5 SET password='$password', nationalite=$nationalite, perms='user', + date='$date', naissance='$naissance', date_ins = NULL WHERE matricule='$matricule'"; +$globals->db->query($sql); +$sql = "REPLACE INTO auth_user_quick (user_id) + SELECT user_id + FROM auth_user_md5 + WHERE matricule='$matricule'"; +$globals->db->query($sql); + +// on vérifie qu'il n'y a pas eu d'erreur +if ($globals->db->err()) { + $page->kill($globals->db->error() . '
+ Une erreur s\'est produite lors de la mise en place définitive de ton inscription, + essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à + webmaster@polytechnique.org'); +} +// ok, pas d'erreur, on continue +$resbis=$globals->db->query("SELECT user_id FROM auth_user_md5 WHERE matricule='$matricule'"); +if ((list($uid) = mysql_fetch_row($resbis)) === false) { + $page->kill($globals->db->error() . '
+ Une erreur s\'est produite lors de la mise en place définitive de ton inscription, + essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à + webmaster@polytechnique.org'); +} + +$globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$forlife','a_vie')"); +if($alias) { + $p2 = sprintf("%02u",($promo%100)); + $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias','alias')"); + $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias.$p2','alias')"); +} + +// on cree un objet logger et on log l' +$logger = new DiogenesCoreLogger($uid); +$logger->log("inscription",$email); + +/****************** insertion de l'email dans la table emails + bogofilter ***/ +require_once("emails.inc.php"); +$redirect = new Redirect($uid); +$redirect->add_email($email); +fix_bestalias($uid); +/****************** ajout des formations ****************/ +if (($appli_id1>0)&&($appli_type1)) + $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id1,type='$appli_type1',ordre=0"); +if (($appli_id2>0)&&($appli_type2)) + $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id2,type='$appli_type2',ordre=1"); +/****************** envoi d'un mail au démarcheur ***************/ +/* si la personne a été marketingnisée, alors on prévient son démarcheur */ +$res = $globals->db->query("SELECT DISTINCT a.alias,e.date_envoi + FROM envoidirect AS e + INNER JOIN aliases AS a ON ( a.id = e.sender AND a.type='a_vie' ) + WHERE e.matricule = '$matricule'"); +while (list($sender_usern, $sender_date) = mysql_fetch_row($res)) { + $mymail = new XOrgMailer('marketing.thanks.tpl'); + $mymail->assign('to', $sender_usern); $mymail->assign('prenom', $prenom); + $mymail->assign('nom',$nom); + $mymail->assign('promo',$promo); $mymail->send(); +} + +// effacer la pré-inscription devenue +$globals->db->query("update en_cours set loginbis='INSCRIT' WHERE username='$forlife'"); + +// insérer l'inscription dans la table des notifications +require_once('notifs.inc.php'); +register_watch_op($uid,WATCH_INSCR); +inscription_notifs_base($uid); + +// insérer une ligne dans user_changes pour que les coordonnées complètes +// soient envoyées a l'AX +$globals->db->query("insert into user_changes ($uid)"); + +// envoi du mail à l'inscrit +$mymail = new XOrgMailer('inscription.reussie.tpl'); +$mymail->assign('forlife', $forlife); +$mymail->assign('prenom', $prenom); +$mymail->send(); - // s'il est dans la table envoidirect, on le marque comme inscrit - $globals->db->query("update envoidirect set date_succes=NOW() where matricule = $matricule"); +// s'il est dans la table envoidirect, on le marque comme inscrit +$globals->db->query("update envoidirect set date_succes=NOW() where matricule = $matricule"); - require_once("xorg.hook.inc.php"); - $hook = new XOrgHook('core'); - $hook->subscribe($forlife, $uid, $promo, $password, true); - - start_connexion($uid,false); -} else - $page->assign('error',ERROR_REF); +require_once("xorg.hook.inc.php"); +$hook = new XOrgHook('core'); +$hook->subscribe($forlife, $uid, $promo, $password, true); -$page->assign('dev',$globals->debug); +start_connexion($uid,false); $page->run(); ?> diff --git a/htdocs/listes/admin.php b/htdocs/listes/admin.php index f4dd7c3..25b5028 100644 --- a/htdocs/listes/admin.php +++ b/htdocs/listes/admin.php @@ -26,13 +26,13 @@ require_once("xorg.inc.php"); new_skinned_page('listes/admin.tpl', AUTH_MDP); require_once('lists.inc.php'); -$err = Array(); $client =& lists_xmlrpc($_SESSION['uid'], $_SESSION['password']); if(isset($_REQUEST['add_member'])) { $arr = $client->mass_subscribe($liste, Array($_REQUEST['add_member'])); if(is_array($arr)) { - foreach($arr as $addr) $err[] = "{$addr[0]} inscrit."; + foreach($arr as $addr) { + $page->trigger("{$addr[0]} inscrit."); } } @@ -42,8 +42,9 @@ if(isset($_REQUEST['del_member'])) { } if(isset($_REQUEST['add_owner'])) { - if($client->add_owner($liste, $_REQUEST['add_owner'])) - $err = $_REQUEST['add_owner']." ajouté aux modérateurs."; + if($client->add_owner($liste, $_REQUEST['add_owner'])) { + $page->trigger($_REQUEST['add_owner']." ajouté aux modérateurs."); + } } if(isset($_REQUEST['del_owner'])) { @@ -88,6 +89,5 @@ if(list($det,$mem,$own) = $client->get_members($liste)) { } else $page->assign('no_list',true); -$page->assign('err', $err); $page->run(); ?> diff --git a/htdocs/listes/create.php b/htdocs/listes/create.php index b33ca6d..3fc793e 100644 --- a/htdocs/listes/create.php +++ b/htdocs/listes/create.php @@ -55,30 +55,41 @@ ksort($owners); array_unique($owners); ksort($members); array_unique($members); if(isset($_POST['submit'])) { - $err = Array(); - if(empty($_POST['liste'])) $err[] = 'champs «addresse souhaitée» vide'; - if(!preg_match("/^[a-zA-Z0-9\-]*$/", $_POST['liste'])) - $err = 'le nom de la liste ne doit contenir que des lettres, chiffres et tirets'; + if(empty($_POST['liste'])) { + $page->trigger('champs «addresse souhaitée» vide'); + } + if(!preg_match("/^[a-zA-Z0-9\-]*$/", $_POST['liste'])) { + $page->trigger('le nom de la liste ne doit contenir que des lettres, chiffres et tirets'); + } $res = $globals->db->query("SELECT COUNT(*) FROM aliases WHERE alias='{$_POST['liste']}'"); list($n) = mysql_fetch_row($res); mysql_free_result($res); - if($n) $err[] = 'cet alias est déjà pris'; - if(empty($_POST['desc'])) $err[] = 'le sujet est vide'; - if(!count($owners)) $err[] = 'pas de gestionnaire'; - if(count($members)<4) $err[] = 'pas assez de membres'; + if($n) { + $page->trigger('cet alias est déjà pris'); + } + + if(empty($_POST['desc'])) { + $page->trigger('le sujet est vide'); + } + + if(!count($owners)) { + $page->trigger('pas de gestionnaire'); + } + + if(count($members)<4) { + $page->trigger('pas assez de membres'); + } - if(!count($err)) { + if (!$page->nb_errs()) { $page->assign('created', true); require_once('validations.inc.php'); $req = new ListeReq($_SESSION['uid'], $_POST['liste'], $_POST['desc'], $_POST['advertise'], $_POST['modlevel'], $_POST['inslevel'], $owners, $members); $req->submit(); - } else { - $page->assign('err', $err); } } diff --git a/htdocs/marketing/volontaire.php b/htdocs/marketing/volontaire.php index 2eb2703..8ac0bc1 100644 --- a/htdocs/marketing/volontaire.php +++ b/htdocs/marketing/volontaire.php @@ -22,20 +22,16 @@ require_once("xorg.inc.php"); new_admin_page('marketing/volontaire.tpl'); -$errors = Array(); - // traitement des paramètres éventuels if (!empty($_GET["del"])) { $globals->db->query("DELETE FROM marketing WHERE id ='{$_GET['del']}'"); - $errors[] = "Entrée effacée"; + $page->trigger("Entrée effacée"); } if (!empty($_GET["done"])) { $globals->db->query("UPDATE marketing SET flags = CONCAT(flags,',envoye') WHERE id ='{$_GET['done']}'"); - $errors[] = "Entrée mise à jour"; + $page->trigger("Entrée mise à jour"); } -$page->assign_by_ref('errors', $errors); - $sql = "SELECT m.id, m.expe, m.dest, m.email, i.promo, i.nom, i.prenom, i.last_known_email, u.promo AS spromo, u.nom AS snom, u.prenom AS sprenom, a.alias AS forlife, diff --git a/htdocs/paiement/index.php b/htdocs/paiement/index.php index 39dccad..0d63423 100644 --- a/htdocs/paiement/index.php +++ b/htdocs/paiement/index.php @@ -26,26 +26,24 @@ require_once('money.inc.php'); // initialisation $op = isset($_REQUEST['op']) ? $_REQUEST['op'] : 'select'; -$erreur = Array(); $meth = new PayMethod(isset($_REQUEST['methode']) ? $_REQUEST['methode'] : -1); $pay = new Payment(isset($_REQUEST['ref']) ? $_REQUEST['ref'] : -1); if($pay->flags->hasflag('old')){ - $erreur[] = "La transaction selectionnée est périmée."; + $page->trigger("La transaction selectionnée est périmée."); $pay = new Payment(); } $val = (($op=="submit") && isset($_REQUEST['montant'])) ? $_REQUEST['montant'] : $pay->montant_def; if (($e = $pay->check($val)) !== true) { - $erreur[] = $e; + $page->trigger($e); } if ($op=='submit') { $pay->init($val, $meth); } -$page->assign('erreur', $erreur); $page->assign('montant',$val); $page->assign('meth', $meth); diff --git a/htdocs/profil.php b/htdocs/profil.php index 404d9a9..317cab4 100644 --- a/htdocs/profil.php +++ b/htdocs/profil.php @@ -49,7 +49,8 @@ if (!$naissance) { if (isset($_REQUEST['birth'])) { //en cas d'erreur : if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST['birth'])) { - $page->assign('etat_naissance','erreur'); + $page->trigger("Date de naissance incorrecte ou incohérente."); + $page->assign('etat_naissance','query'); $page->run();//on reaffiche le formulaire } @@ -64,16 +65,13 @@ if (!$naissance) { $page->run();//on affiche le formulaire pour naissance } -$errs=Array(); - //doit-on faire un update ? if (isset($_REQUEST['modifier']) || isset($_REQUEST['suivant'])) { require_once("profil/get_{$opened_tab}.inc.php"); require_once("profil/verif_{$opened_tab}.inc.php"); - if(!empty($errs)) { + if($page->nb_errs()) { require_once("profil/assign_{$opened_tab}.inc.php"); - $page->assign("errs", $errs); $page->assign('onglet',$opened_tab); $page->assign('onglet_last',get_last_tab()); $page->assign('onglet_tpl',"profil/$opened_tab.tpl"); @@ -115,7 +113,6 @@ require_once("profil/get_{$new_tab}.inc.php"); require_once("profil/verif_{$new_tab}.inc.php"); require_once("profil/assign_{$new_tab}.inc.php"); -$page->assign("errs", $errs); $page->assign('onglet',$new_tab); $page->assign('onglet_last',get_last_tab()); $page->assign('onglet_tpl',"profil/$new_tab.tpl"); diff --git a/htdocs/recovery.php b/htdocs/recovery.php index 90d5675..eef8942 100644 --- a/htdocs/recovery.php +++ b/htdocs/recovery.php @@ -22,11 +22,9 @@ require_once("xorg.inc.php"); new_skinned_page('recovery.tpl', AUTH_PUBLIC); -$errors = Array(); - if (isset($_REQUEST['login']) and isset($_REQUEST['birth'])) { if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST['birth'])) { - $page->assign('error', "Date de naissance incorrecte ou incohérente"); + $page->trigger("Date de naissance incorrecte ou incohérente"); $page->run(); } $birth = sprintf("%s-%s-%s", substr($_REQUEST["birth"],4,4), substr($_REQUEST["birth"],2,2), substr($_REQUEST["birth"],0,2)); @@ -93,7 +91,7 @@ Mail envoy $logger = $_SESSION['log'] = (isset($logger) ? $logger : new DiogenesCoreLogger($uid)); $logger->log("recovery",$emails); } else { - $page->assign('error', "Pas de résultat correspondant aux champs entrés dans notre base de données."); + $page->trigger("Pas de résultat correspondant aux champs entrés dans notre base de données."); } } diff --git a/htdocs/tmpPWD.php b/htdocs/tmpPWD.php index 9345ae3..5e86ae8 100644 --- a/htdocs/tmpPWD.php +++ b/htdocs/tmpPWD.php @@ -41,15 +41,13 @@ if ($ligne = mysql_fetch_array($result)) { $globals->db->query($sql); new_skinned_page('tmpPWD.success.tpl', AUTH_PUBLIC); $page->run(); - } - else { + } else { new_skinned_page('motdepassemd5.tpl', AUTH_PUBLIC, 'motdepassemd5.head.tpl'); $page->run(); } -} -else { - new_skinned_page('tmpPWD.failure.tpl', AUTH_PUBLIC); - $page->run(); +} else { + new_skinned_page('index.tpl', AUTH_PUBLIC); + $page->kill("Cette adresse n'existe pas ou n'existe plus sur le serveur."); } ?> diff --git a/htdocs/trombino.php b/htdocs/trombino.php index 880928b..e67300a 100644 --- a/htdocs/trombino.php +++ b/htdocs/trombino.php @@ -25,16 +25,15 @@ new_skinned_page('trombino.tpl', AUTH_MDP); require_once("validations.inc.php"); if (isset($_REQUEST["ordi"]) and - isset($_FILES["userfile"]) and isset($_FILES["userfile"]["tmp_name"])) { + isset($_FILES["userfile"]) and isset($_FILES["userfile"]["tmp_name"])) { //Fichier en local $myphoto = new PhotoReq($_SESSION['uid'], $_FILES["userfile"]["tmp_name"]); - if(!isset($erreur)) - $myphoto->submit(); + $myphoto->submit(); } elseif (isset($_REQUEST["web"]) and isset($_REQUEST["photo"])) { // net $fp = fopen($_REQUEST["photo"], 'r'); if (!$fp) { - $erreur = "Fichier inexistant"; + $page->trigger("Fichier inexistant"); } else { $attach = fread($fp, 35000); fclose($fp); @@ -43,8 +42,7 @@ if (isset($_REQUEST["ordi"]) and fwrite($fp, $attach); fclose($fp); - $myphoto = new PhotoReq($_SESSION['uid'], $file); - if(!isset($erreur)) + $myphoto = new PhotoReq($_SESSION['uid'], $file); $myphoto->submit(); } } elseif (isset($_REQUEST["trombi"])) { @@ -52,8 +50,8 @@ if (isset($_REQUEST["ordi"]) and $file = "/home/web/trombino/photos".$_SESSION["promo"]."/".$_SESSION["forlife"].".jpg"; $myphoto = new PhotoReq($_SESSION['uid'], $file); if($myphoto){// There was no errors, we can go on - $myphoto->commit(); - $myphoto->clean(); + $myphoto->commit(); + $myphoto->clean(); } } elseif (isset($_REQUEST["suppr"])) { // effacement de la photo @@ -61,9 +59,6 @@ if (isset($_REQUEST["ordi"]) and $globals->db->query("DELETE FROM requests WHERE user_id = ".$_SESSION["uid"]." AND type='photo'"); } -// Si une requête a été faite et qu'une erreur est signalée, on affiche l'erreur -if(isset($erreur)) $page->assign('erreur', $erreur); - $sql = $globals->db->query("SELECT * FROM requests WHERE user_id='{$_SESSION['uid']}' AND type='photo'"); $page->assign('submited', mysql_num_rows($sql) > 0); diff --git a/htdocs/trombipromo.php b/htdocs/trombipromo.php index 7cb3c5b..454b6b8 100644 --- a/htdocs/trombipromo.php +++ b/htdocs/trombipromo.php @@ -55,7 +55,8 @@ if(isset($_REQUEST['xpromo'])) { $xpromo = intval($_REQUEST['xpromo']); if ( $xpromo<1900 || $xpromo>date('Y') || ($xpromo == -1 && $_SESSION['perms']!="admin") ) { - $page->assign('erreur', "Promotion incorrecte (saisir au format YYYY). Recommence."); + $page->trigger("Promotion incorrecte (saisir au format YYYY). Recommence."); + $page->assign('error', true); } else { $trombi = new Trombi('getList'); $trombi->hidePromo(); diff --git a/htdocs/webredirect.php b/htdocs/webredirect.php index 3b56bf9..6bbb490 100644 --- a/htdocs/webredirect.php +++ b/htdocs/webredirect.php @@ -27,10 +27,9 @@ if (isset($_REQUEST['submit']) and ($_REQUEST['submit'] == "Valider" or $_REQUES $globals->db->query("update auth_user_quick set redirecturl = '{$_REQUEST['url']}' where user_id = '{$_SESSION['uid']}'"); if (mysql_errno() == 0) { $_SESSION['log']->log("carva_add","http://".$_REQUEST['url']); - $page->assign('message',"

Redirection activée vers {$_REQUEST['url']}

\n"); + $page->trigger("Redirection activée vers {$_REQUEST['url']}"); } else { - $page->assign('message',"

Erreur de mise à jour

\n"); + $page->trigger('Erreur de mise à jour'); } } elseif (isset($_REQUEST['submit']) and $_REQUEST['submit'] == "Supprimer") { // on supprime la redirection @@ -38,9 +37,9 @@ if (isset($_REQUEST['submit']) and ($_REQUEST['submit'] == "Valider" or $_REQUES if (mysql_errno() == 0) { $_SESSION['log']->log("carva_del",$_REQUEST['url']); $_POST['url'] = ''; - $page->assign('message',"

Redirection supprimée

"); + $page->trigger('Redirection supprimée'); } else { - $page->assign('message',"

Erreur de suppression

\n"); + $page->trigger('Erreur de suppression'); } } diff --git a/include/identification.inc.php b/include/identification.inc.php index d3d5f2b..23fe873 100644 --- a/include/identification.inc.php +++ b/include/identification.inc.php @@ -24,7 +24,7 @@ require_once('xorg.misc.inc.php'); function sortie_id($err) { global $page; new_skinned_page('inscription/step1.tpl', AUTH_PUBLIC); - $page->assign('erreur', $err); + $page->trigger($err); $page->run(); } diff --git a/include/profil/verif_general.inc.php b/include/profil/verif_general.inc.php index 0d982d4..9e26d5e 100644 --- a/include/profil/verif_general.inc.php +++ b/include/profil/verif_general.inc.php @@ -22,7 +22,7 @@ // validité du mobile if (strlen(strtok($mobile,"<>{}@&#~\/:;?,!§*_`[]|%$^=")) < strlen($mobile)) { - $errs[] = "Le champ 'Téléphone mobile' contient un caractère interdit."; + $page->trigger("Le champ 'Téléphone mobile' contient un caractère interdit."); } // correction du champ web si vide @@ -30,7 +30,8 @@ if ($web=="http://" or $web == '') { $web=''; } elseif (!preg_match("{^(https?|ftp)://[a-zA-Z0-9._%#+/?=&~-]+$}i", $web)) { // validité de l'url donnée dans web - $errs[] = "URL incorrecte dans le champ 'Page web perso', une url doit commencer par http:// ou https:// ou ftp:// et ne pas contenir de caractères interdits"; + $page->trigger("URL incorrecte dans le champ 'Page web perso', une url doit commencer par + http:// ou https:// ou ftp:// et ne pas contenir de caractères interdits"); } else { $web = str_replace('&', '&', $web); } @@ -38,7 +39,7 @@ if ($web=="http://" or $web == '') { //validité du champ libre if (strlen(strtok($libre,"<>")) < strlen($libre)) { - $errs[] = "Le champ 'Complément libre' contient un caractère interdit."; + $page->trigger("Le champ 'Complément libre' contient un caractère interdit."); } ?> diff --git a/include/profil/verif_mentor.inc.php b/include/profil/verif_mentor.inc.php index 5df8e67..8a60bd1 100644 --- a/include/profil/verif_mentor.inc.php +++ b/include/profil/verif_mentor.inc.php @@ -25,7 +25,7 @@ if(isset($_POST['mentor_expertise'])){ $mentor_expertise = stripslashes($_POST['mentor_expertise']); if(!empty($mentor_expertise)){ if (strlen(strtok($mentor_expertise,"<>{}~§`|%$^")) < strlen($mentor_expertise)){//TODO: affiner la liste - $errs[] = "L'expertise contient un caractère interdit."; + $page->trigger("L'expertise contient un caractère interdit."); } } } diff --git a/include/search.classes.inc.php b/include/search.classes.inc.php index d996d27..7b84062 100644 --- a/include/search.classes.inc.php +++ b/include/search.classes.inc.php @@ -84,7 +84,7 @@ class ThrowError function ThrowError($explain) { global $page; - $page->assign('error','Erreur : '.$explain); + $page->trigger('Erreur : '.$explain); $page->run(); } } diff --git a/include/xorg.hook.inc.php b/include/xorg.hook.inc.php index 3ac73e1..e3a2243 100644 --- a/include/xorg.hook.inc.php +++ b/include/xorg.hook.inc.php @@ -106,7 +106,6 @@ class XOrgHook extends PEAR $this->raiseError("In the Hook « {$this->_name} » the function « $function » expects at least 1 argument"); } foreach ($this->_mods as $mod) { - echo $mod.'_'.$function; if (!function_exists($mod.'_'.$function)) continue; $arguments[$i] =& call_user_func_array($mod.'_'.$function,$arguments); } diff --git a/include/xorg.page.inc.php b/include/xorg.page.inc.php index 0b185cd..8f380fb 100644 --- a/include/xorg.page.inc.php +++ b/include/xorg.page.inc.php @@ -38,6 +38,7 @@ class XorgPage extends DiogenesCorePage var $_page_type; var $_tpl; + var $_errors; // }}} // {{{ function XorgPage() @@ -65,7 +66,9 @@ class XorgPage extends DiogenesCorePage } $this->_page_type = $type; - $this->_tpl = $tpl; + $this->_tpl = $tpl; + require_once('xorg/errors.inc.php'); + $this->_errors = new XOrgErrors; $this->DiogenesCorePage(); require_once('xorg/smarty.plugins.inc.php'); @@ -120,6 +123,8 @@ class XorgPage extends DiogenesCorePage function run($append_to_id="") { global $globals, $TIME_BEGIN; + $this->assign_by_ref("xorg_error", $this->_errors); + if ($this->_page_type == NO_SKIN) { $this->display($this->_tpl); } else { @@ -160,14 +165,36 @@ class XorgPage extends DiogenesCorePage } // }}} - // {{{ function failure() + // {{{ function trigger() + + function trigger($msg) + { + $this->_errors->trigger($msg); + } + + // }}} + // {{{ function nb_errs() + + function nb_errs() + { + return count($this->_errors->errs); + } + + // }}} + // {{{ function fail() + + function fail($msg) + { + $this->caching = false; + $this->_errors->fail($msg); + } + + // }}} + // {{{ function kill() - function failure() + function kill($msg) { - $this->_page_type = SKINNED; - $this->_tpl = 'failure.tpl'; - $this->assign('xorg_tpl', 'failure.tpl'); - $this->caching=0; + $this->fail($msg); $this->run(); } diff --git a/templates/tmpPWD.failure.tpl b/include/xorg/errors.inc.php similarity index 69% rename from templates/tmpPWD.failure.tpl rename to include/xorg/errors.inc.php index 78fed07..c4e4f3f 100644 --- a/templates/tmpPWD.failure.tpl +++ b/include/xorg/errors.inc.php @@ -1,4 +1,5 @@ -{*************************************************************************** +OOOooups ! -

- Cette adresse n'existe pas ou n'existe plus sur le serveur. -

-{* vim:set et sw=2 sts=2 sws=2: *} +// {{{ class XOrgErrors + +class XOrgErrors +{ + // {{{ properties + + var $errs = Array(); + var $failure = false; + + // }}} + // {{{ constructor + + function XOrgErrors() + { } + + // }}} + // {{{ function trigger + + function trigger($text) { + $this->errs[] = $text; + } + + // }}} + // {{{ + + function fail($text) { + $this->trigger($text); + $this->failure = true; + } + + // }}} +} + +// }}} + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: +?> diff --git a/include/xorg/session.inc.php b/include/xorg/session.inc.php index 4dfa199..0b2d797 100644 --- a/include/xorg/session.inc.php +++ b/include/xorg/session.inc.php @@ -186,7 +186,7 @@ function check_perms() if (!has_perms()) { require_once("diogenes.core.logger.inc.php"); $_SESSION['log']->log("noperms",$_SERVER['PHP_SELF']); - $page->failure(); + $page->die("Tu n'as pas les permissions nécessaires pour accéder à cette page."); } } diff --git a/templates/admin/utilisateurs.tpl b/templates/admin/utilisateurs.tpl index 6927850..0e1e716 100644 --- a/templates/admin/utilisateurs.tpl +++ b/templates/admin/utilisateurs.tpl @@ -31,10 +31,6 @@ Attention, d {dynamic} -{foreach from=$errors item=e} -

{$e}

-{/foreach} - {if $smarty.post.u_kill_conf}
diff --git a/templates/alias.tpl b/templates/alias.tpl index 7a04952..48b3715 100644 --- a/templates/alias.tpl +++ b/templates/alias.tpl @@ -29,10 +29,6 @@ Encore merci de nous faire confiance pour tes e-mails !

{else} - {if $error} -

{dyn s=$error}

- {/if} -

Adresses e-mail personnalisées

diff --git a/templates/carnet/mescontacts.tpl b/templates/carnet/mescontacts.tpl index 256d563..a605570 100644 --- a/templates/carnet/mescontacts.tpl +++ b/templates/carnet/mescontacts.tpl @@ -20,7 +20,6 @@ {dynamic} -

{$erreur}

Ma liste personnelle de contacts diff --git a/templates/carnet/notifs.tpl b/templates/carnet/notifs.tpl index bb522b1..a601cc3 100644 --- a/templates/carnet/notifs.tpl +++ b/templates/carnet/notifs.tpl @@ -20,10 +20,6 @@ {dynamic} -{foreach from=$err item=e} -

{$e}

-{/foreach} -

Notifications automatiques

Les mails sont hebdomadaires (pour éviter une trop grosse charge du serveur de mails et de ta boite mail). diff --git a/templates/emails/broken.tpl b/templates/emails/broken.tpl index 0b55606..36c6c9b 100644 --- a/templates/emails/broken.tpl +++ b/templates/emails/broken.tpl @@ -21,10 +21,6 @@ {dynamic} -{if $erreur} -

{$erreur}

-{/if} -

Vérifier une patte cassée

{if $x && $x.nb_mails} diff --git a/templates/emails/send.tpl b/templates/emails/send.tpl index e231943..9efb87d 100644 --- a/templates/emails/send.tpl +++ b/templates/emails/send.tpl @@ -21,8 +21,6 @@ {dynamic} -

{$error}

-

Envoyer un mail

diff --git a/templates/inscription/step1.tpl b/templates/inscription/step1.tpl index bfd0997..00b5d0b 100644 --- a/templates/inscription/step1.tpl +++ b/templates/inscription/step1.tpl @@ -19,8 +19,7 @@ ***************************************************************************} {dynamic} -

{$erreur|smarty:nodefaults|nl2br}

- +

Identification diff --git a/templates/inscription/step2.tpl b/templates/inscription/step2.tpl index a74cc61..4c64b2a 100644 --- a/templates/inscription/step2.tpl +++ b/templates/inscription/step2.tpl @@ -27,8 +27,6 @@ {dynamic} -

{$erreur|smarty:nodefaults|nl2br}

- {if $homonyme}

diff --git a/templates/inscription/step4.tpl b/templates/inscription/step4.tpl index 17b77e7..85d8354 100644 --- a/templates/inscription/step4.tpl +++ b/templates/inscription/step4.tpl @@ -19,64 +19,25 @@ ***************************************************************************} {dynamic} -{if !$error} -

- Dernière étape -

-

- Tu as maintenant accès au site en utilisant les paramètres reçus par mail. - Ton adresse électronique à vie {$forlife}@polytechnique.org - est déjà ouverte, essaie-la ! -

-

- Remarque: m4x.org est un domaine "discret" qui veut dire "mail for X" et - qui comporte exactement les mêmes adresses que le domaine polytechnique.org. -

-

- Clique ici pour changer ton mot de passe. -

-

- N'oublie pas : si tu perds ton mot de passe, nous n'avons aucun engagement, en - particulier en termes de rapidité, mais pas seulement, à te redonner accès au - site. Cela peut prendre plusieurs semaines, les pertes de mot de passe sont - traitées avec la priorité minimale. -

-{elseif $error eq $smarty.const.ERROR_DB} - {$error_db} - -

- Une erreur s'est produite lors de la mise en place définitive de ton inscription, - essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à - webmaster@polytechnique.org -

-{elseif $error eq $smarty.const.ERROR_ALREADY_SUBSCRIBED} -

- Tu es déjà inscrit à polytechnique.org. Tu as sûrement cliqué deux fois sur le même lien de - référence ou effectué un double clic. Consultes tes mails pour obtenir ton identifiant et ton - mot de passe. -

-{elseif $error eq $smarty.const.ERROR_REF} -

- OOOooups ! -

-

- Cette adresse n'existe pas, ou plus, sur le serveur. -

-

- Causes probables : -

-
    -
  1. - Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs. -
  2. -
  3. - Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main. -
  4. -
  5. - Tu as peut-être attendu trop longtemps pour confirmer. Les - pré-inscriptions sont annulées tous les 30 jours. -
  6. -
-{/if} +

Dernière étape

+

+ Tu as maintenant accès au site en utilisant les paramètres reçus par mail. + Ton adresse électronique à vie {$forlife}@polytechnique.org + est déjà ouverte, essaie-la ! +

+

+ Remarque: m4x.org est un domaine "discret" qui veut dire "mail for X" et + qui comporte exactement les mêmes adresses que le domaine polytechnique.org. +

+

+Clique ici pour changer ton mot de passe. +

+

+ N'oublie pas : si tu perds ton mot de passe, nous n'avons aucun engagement, en + particulier en termes de rapidité, mais pas seulement, à te redonner accès au + site. Cela peut prendre plusieurs semaines, les pertes de mot de passe sont + traitées avec la priorité minimale. +

{/dynamic} + {* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/listes/admin.tpl b/templates/listes/admin.tpl index ebdefc0..bcf9d31 100644 --- a/templates/listes/admin.tpl +++ b/templates/listes/admin.tpl @@ -41,10 +41,6 @@ L'ic qui y était abonné.

-{foreach from=$err item=e} -

{$e}

-{/foreach} -

modérateurs de la liste

diff --git a/templates/listes/create.tpl b/templates/listes/create.tpl index 1467af0..32826e0 100644 --- a/templates/listes/create.tpl +++ b/templates/listes/create.tpl @@ -20,15 +20,12 @@ {dynamic} -{foreach from=$err item=e} -

{$e}

-{/foreach} -

Création d'une liste de diffusion

{if $created} +

Demande de création envoyée !

{else} diff --git a/templates/marketing/volontaire.tpl b/templates/marketing/volontaire.tpl index 81bb6c6..4e36287 100644 --- a/templates/marketing/volontaire.tpl +++ b/templates/marketing/volontaire.tpl @@ -21,10 +21,6 @@ {dynamic} -{foreach from=$errros item=err} -

{$err}

-{/foreach} -

Marketing volontaire

diff --git a/templates/paiment/index.tpl b/templates/paiment/index.tpl index 3f95cb2..b4e5975 100644 --- a/templates/paiment/index.tpl +++ b/templates/paiment/index.tpl @@ -22,16 +22,12 @@

Micropaiments

{dynamic} -{if $smarty.request.op eq "submit" and !$erreur|count} +{if $smarty.request.op eq "submit" and !$xorg_error->errs|count} {$pay->form($montant)|smarty:nodefaults} {else} -{foreach from=$erreur item=e} -

{$e}

-{/foreach} -

Si tu ne souhaites pas utiliser notre interface de télépaiement, tu peux virer directement la somme de ton choix sur notre compte diff --git a/templates/profil/naissance.tpl b/templates/profil/naissance.tpl index 9fb39bc..9d2cee1 100644 --- a/templates/profil/naissance.tpl +++ b/templates/profil/naissance.tpl @@ -27,13 +27,6 @@ {else} -{if $etat_naissance == 'erreur'} -

-Date de naissance incorrecte ou incohérente. -Exemple: 1er février 1990 se rentre 01021990. -

-{/if} -

Date de naissance

diff --git a/templates/recovery.tpl b/templates/recovery.tpl index a8da168..7baffbd 100644 --- a/templates/recovery.tpl +++ b/templates/recovery.tpl @@ -19,14 +19,10 @@ ***************************************************************************} -

- Perte du mot de passe -

+

Perte du mot de passe

{dynamic} -
{$error}
- {if $ok}

diff --git a/templates/search.adv.form.tpl b/templates/search.adv.form.tpl index a246935..e0da094 100644 --- a/templates/search.adv.form.tpl +++ b/templates/search.adv.form.tpl @@ -20,10 +20,6 @@

Recherche avancée

-{if $error} -

{$error}

-{/if} -

[Recherche simple]

diff --git a/templates/search.adv.links.tpl b/templates/search.adv.links.tpl index de92a70..978c7a4 100644 --- a/templates/search.adv.links.tpl +++ b/templates/search.adv.links.tpl @@ -18,11 +18,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************} - {if $do_title}

Recherche avancée

{/if} - -{if $error} -

{$error}

-{/if} +{if $do_title}

Recherche avancée

{/if}
    {if !$with_soundex && ($smarty.request.firstname || $smarty.request.name)} diff --git a/templates/search.quick.form.tpl b/templates/search.quick.form.tpl index 3634824..6619767 100644 --- a/templates/search.quick.form.tpl +++ b/templates/search.quick.form.tpl @@ -20,8 +20,6 @@

    Recherche simple dans l'annuaire

    -{if $error}

    {$error}

    {/if} - diff --git a/templates/search.tpl b/templates/search.tpl index b206429..c914764 100644 --- a/templates/search.tpl +++ b/templates/search.tpl @@ -20,7 +20,7 @@ {dynamic} -{if $formulaire==0 and !$error} +{if $formulaire==0 and !$xorg_error->errs|count} {if !$advanced} {include file='search.quick.form.tpl'} {else} @@ -55,7 +55,7 @@ {if $offset!=$smarty.section.offset.index*$perpage} {$smarty.section.offset.index+1} {else} - {$smarty.section.offset.index+1} + {$smarty.section.offset.index+1} {/if}   {/section} diff --git a/templates/failure.tpl b/templates/skin/common.content.tpl similarity index 88% rename from templates/failure.tpl rename to templates/skin/common.content.tpl index 07627fd..be33031 100644 --- a/templates/failure.tpl +++ b/templates/skin/common.content.tpl @@ -18,9 +18,12 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************} +{dynamic} +{foreach from=$xorg_error->errs|smarty:nodefaults item=err} +
    {$err|smarty:nodefaults}
    +{/foreach} +{/dynamic} -
    -Tu n'as pas les permissions nécessaires pour accéder à cette page. -
    +{if !$xorg_error->failure}{include file=$xorg_tpl}{/if} {* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/skin/default.tpl b/templates/skin/default.tpl index ffc1e09..8d1a4a1 100644 --- a/templates/skin/default.tpl +++ b/templates/skin/default.tpl @@ -48,7 +48,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -100,7 +100,7 @@ {/perms} diff --git a/templates/skin/espace.tpl b/templates/skin/espace.tpl index a2044aa..d89b2cd 100644 --- a/templates/skin/espace.tpl +++ b/templates/skin/espace.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -101,7 +101,7 @@ {/perms} diff --git a/templates/skin/humlinux.tpl b/templates/skin/humlinux.tpl index ab87600..cdabf71 100644 --- a/templates/skin/humlinux.tpl +++ b/templates/skin/humlinux.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -100,7 +100,7 @@ {/perms} diff --git a/templates/skin/linux.tpl b/templates/skin/linux.tpl index 4f6e6c5..8be92a0 100644 --- a/templates/skin/linux.tpl +++ b/templates/skin/linux.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -101,7 +101,7 @@ {/perms} diff --git a/templates/skin/liteskin.tpl b/templates/skin/liteskin.tpl index 82f2478..e9bac6a 100644 --- a/templates/skin/liteskin.tpl +++ b/templates/skin/liteskin.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -100,7 +100,7 @@ {/perms} diff --git a/templates/skin/nbviolet.tpl b/templates/skin/nbviolet.tpl index 7542664..872ac5c 100644 --- a/templates/skin/nbviolet.tpl +++ b/templates/skin/nbviolet.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -101,7 +101,7 @@ {/perms} diff --git a/templates/skin/newxorg.tpl b/templates/skin/newxorg.tpl index ec52e35..8020e83 100644 --- a/templates/skin/newxorg.tpl +++ b/templates/skin/newxorg.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -100,7 +100,7 @@ {/perms} diff --git a/templates/skin/oldtimes.tpl b/templates/skin/oldtimes.tpl index d5027d0..a98f1b0 100644 --- a/templates/skin/oldtimes.tpl +++ b/templates/skin/oldtimes.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -101,7 +101,7 @@ {/perms} diff --git a/templates/skin/openweb.tpl b/templates/skin/openweb.tpl index fd1ad3e..814f747 100644 --- a/templates/skin/openweb.tpl +++ b/templates/skin/openweb.tpl @@ -47,9 +47,9 @@ {if $simple} -
    - {include file=$xorg_tpl} -
    +
    + {include file="skin/common.content.tpl"} +
    {else} @@ -100,7 +100,7 @@ diff --git a/templates/skin/sharky.tpl b/templates/skin/sharky.tpl index 66a4156..64bd503 100644 --- a/templates/skin/sharky.tpl +++ b/templates/skin/sharky.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -100,7 +100,7 @@ {/perms} diff --git a/templates/skin/spectral.tpl b/templates/skin/spectral.tpl index 599c771..8197a65 100644 --- a/templates/skin/spectral.tpl +++ b/templates/skin/spectral.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -101,7 +101,7 @@ {/perms} diff --git a/templates/skin/trapped.tpl b/templates/skin/trapped.tpl index d7b5502..5653291 100644 --- a/templates/skin/trapped.tpl +++ b/templates/skin/trapped.tpl @@ -49,7 +49,7 @@ {if $simple}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {else} @@ -101,7 +101,7 @@ {/perms} diff --git a/templates/stats/nb_by_promo.tpl b/templates/stats/nb_by_promo.tpl index 7638b6b..1569d92 100644 --- a/templates/stats/nb_by_promo.tpl +++ b/templates/stats/nb_by_promo.tpl @@ -40,7 +40,7 @@ Voici le nombre d'inscrits par promo : {foreach item=nb from=$nb10}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    - {include file=$xorg_tpl} + {include file="skin/common.content.tpl"}
    {if $nb && $nb.promo eq $smarty.request.promo} - {$nb.nb} + {$nb.nb} {elseif $nb} {$nb.nb} {else} diff --git a/templates/trombipromo.tpl b/templates/trombipromo.tpl index d5de840..9ac9019 100644 --- a/templates/trombipromo.tpl +++ b/templates/trombipromo.tpl @@ -21,7 +21,7 @@ {dynamic} -{if !$smarty.request.xpromo || $erreur} +{if !$smarty.request.xpromo || $error}

    Trombinoscope promo

    @@ -36,7 +36,6 @@ en validant peut idée de la taille, chaque photo est limitée à 30 ko, et chaque page affiche au plus {$limit} photos.

    -{if $erreur}

    {$erreur}

    {/if} diff --git a/templates/webredirect.tpl b/templates/webredirect.tpl index 3dee9cf..3bdb4d4 100644 --- a/templates/webredirect.tpl +++ b/templates/webredirect.tpl @@ -19,11 +19,6 @@ ***************************************************************************} -{dynamic on="0$message"} -

    Mise à jour de la redirection

    -{$message|smarty:nodefaults} -{/dynamic} -

    Redirection de page WEB

    Pourquoi une redirection de page WEB ?