From: Stéphane Jacob Date: Sun, 8 Nov 2009 13:27:30 +0000 (+0100) Subject: Merge commit 'origin/fusionax' into account X-Git-Tag: xorg/1.0.0~332^2~313 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=e46cf8c46341b447cc3701c8afcc9baec3da11e5;p=platal.git Merge commit 'origin/fusionax' into account --- e46cf8c46341b447cc3701c8afcc9baec3da11e5 diff --cc include/marketing.inc.php index be7dcbf,00f6eb7..3d045d7 --- a/include/marketing.inc.php +++ b/include/marketing.inc.php @@@ -280,7 -287,9 +291,8 @@@ class AnnuaireMarketing implements Mark $page->assign('intro', $this->getIntro()); $page->assign('u', $user); $page->assign('sign', $this->getSignature()); - $res = XDB::query("SELECT COUNT(*) FROM auth_user_md5 WHERE perms IN ('user', 'admin') AND deces = 0"); - $page->assign('num_users', $res->fetchOneCell()); + $page->assign('num_users', self::getAliveUsersCount()); + $page->assign('personal_notes', $this->getPersonalNotes()); } public function getText(array $user) diff --cc include/validations/aliases.inc.php index 69509c1,806d709..20d52e4 --- a/include/validations/aliases.inc.php +++ b/include/validations/aliases.inc.php @@@ -27,14 -29,16 +27,14 @@@ class AliasReq extends Validat public $raison; public $unique = true; - public $old=''; - public $public='private'; + public $old = ''; + public $public = 'private'; - public $rules = "Interdire ce qui peut nous servir (virus@, postmaster@, ...), + public $rules = "Interdire ce qui peut nous servir (virus@, postmaster@…), les alias vulgaires, et les prenom.nom (sauf si c'est pour l'utilisateur prenom.nom). - Pas de contrainte pour les tirets ou les points, en revanche le souligné (_) est interdit"; + Pas de contrainte pour les tirets ou les points, en revanche le souligné (_) est interdit."; - // }}} - // {{{ constructor - + // constructor {{{2 public function __construct(User &$_user, $_alias, $_raison, $_public, $_stamp=0) { global $globals; @@@ -70,8 -92,7 +70,8 @@@ protected function _mail_body($isok) { if ($isok) { - return " L'adresse email {$this->alias} que tu avais demandée vient d'être créée, tu peux désormais l'utiliser à ta convenance." . (($this->public == 'public') ? " À ta demande, cette adresse apparaît maintenant sur ta fiche." : ""); + return " L'adresse email {$this->alias} que tu avais demandée vient d'être créée, tu peux désormais l'utiliser à ta convenance." - . ($this->public == 'public' ? ' A ta demande, cette adresse apparaît maintenant sur ta fiche.' : ''); ++ . ($this->public == 'public' ? ' À ta demande, cette adresse apparaît maintenant sur ta fiche.' : ''); } else { return " La demande que tu avais faite pour l'alias {$this->alias} a été refusée."; } diff --cc modules/admin.php index c0cf740,4ab3e13..1d5f1f3 --- a/modules/admin.php +++ b/modules/admin.php @@@ -368,11 -355,12 +368,11 @@@ class AdminModule extends PLModul function handler_user(&$page, $login = false) { global $globals; - $page->changeTpl('admin/utilisateurs.tpl'); - $page->setTitle('Administration - Edit/Su/Log'); - require_once("emails.inc.php"); + $page->changeTpl('admin/user.tpl'); + $page->setTitle('Administration - Compte'); - if (S::has('suid')) { + if (S::suid()) { - $page->kill("Déjà en SUID !!!"); + $page->kill("Déjà en SUID !!!"); } // Loads the user identity using the environment. @@@ -817,15 -894,12 +817,15 @@@ $page->setTitle('Administration - Décédés'); $res = XDB::iterator( - 'SELECT a.hruid, pd.promo, p.ax_id, pd.directory_name, p.deathdate, DATE(MAX(s.start)) AS last - "SELECT u.promo, u.nom, u.prenom, u.deces, u.hruid, DATE(MAX(s.start)) AS last - FROM auth_user_md5 AS u - LEFT JOIN logger.sessions AS s ON (s.uid = u.user_id AND suid = 0) - WHERE perms IN ('admin', 'user') AND deces <> 0 - GROUP BY u.user_id - ORDER BY u.promo, u.nom"); ++ "SELECT a.hruid, pd.promo, p.ax_id, pd.directory_name, p.deathdate, DATE(MAX(s.start)) AS last + FROM accounts AS a - INNER JOIN account_profiles AS ap ON (ap.uid = a.uid AND FIND_IN_SET(\'owner\', ap.perms)) ++ INNER JOIN account_profiles AS ap ON (ap.uid = a.uid AND FIND_IN_SET('owner', ap.perms)) + INNER JOIN profiles AS p ON (p.pid = ap.pid) + INNER JOIN profile_display AS pd ON (pd.pid = p.pid) + LEFT JOIN logger.sessions AS s ON (s.uid = a.uid AND suid = 0) - WHERE a.state = \'active\' AND p.deathdate IS NOT NULL ++ WHERE a.state = 'active' AND p.deathdate IS NOT NULL + GROUP BY a.uid - ORDER BY pd.promo, pd.sort_name'); ++ ORDER BY pd.promo, pd.sort_name"); $page->assign('dead', $res); } diff --cc modules/carnet.php index f3b1ebd,54a118d..9f8a4d1 --- a/modules/carnet.php +++ b/modules/carnet.php @@@ -77,91 -73,52 +77,91 @@@ class CarnetModule extends PLModul $this->_add_rss_link($page); } - function _handler_notifs_promos(&$page, &$watch, $action, $arg) + private function getSinglePromotion(PlPage &$page, $promo) { - if(preg_match('!^ *(\d{4}) *$!', $arg, $matches)) { - $p = intval($matches[1]); - if($p<1900 || $p>2100) { - $page->trigError('La promo entrée est invalide.'); - } else { - if ($action == 'add_promo') { - $watch->_promos->add($p); - } else { - $watch->_promos->del($p); - } - } - } elseif (preg_match('!^ *(\d{4}) *- *(\d{4}) *$!', $arg, $matches)) { - $p1 = intval($matches[1]); - $p2 = intval($matches[2]); - if($p1<1900 || $p1>2100) { - $page->trigError('La première promo de la plage entrée est invalide.'); - } elseif($p2<1900 || $p2>2100) { - $page->trigError('La seconde promo de la plage entrée est invalide.'); + if (!ctype_digit($promo) || $promo < 1920 || $promo > date('Y')) { - $page->trigError('Promotion invalide : ' . $promo); ++ $page->trigError('Promotion invalide : ' . $promo . '.'); + return null; + } + return (int)$promo; + } + + private function getPromo(PlPage &$page, $promo) + { + if (strpos($promo, '-') === false) { + $promo = $this->getSinglePromotion($page, $promo); + if (!$promo) { + return null; } else { - if ($action == 'add_promo') { - $watch->_promos->addRange($p1, $p2); - } else { - $watch->_promos->delRange($p1, $p2); - } + return array($promo); } - } else { - $page->trigError("La promo (ou la plage de promo) entrée est dans un format incorrect."); } + + list($promo1, $promo2) = explode('-', $promo); + $promo1 = $this->getSinglePromotion($page, $promo1); + if (!$promo1) { + return null; + } + $promo2 = $this->getSinglePromotion($page, $promo2); + if (!$promo2) { + return null; + } + if ($promo1 > $promo2) { - $page->trigError("Intervale non valide : " . $promo); ++ $page->trigError('Intervalle non valide : ' . $promo . '.'); + return null; + } + $array = array(); + for ($i = $promo1 ; $i <= $promo2 ; ++$i) { + $array[] = $i; + } + return $array; } - function handler_notifs(&$page, $action = null, $arg = null) + private function addPromo(PlPage &$page, $promo) { - $page->changeTpl('carnet/notifs.tpl'); + $promos = $this->getPromo($page, $promo); + if (!$promos || count($promos) == 0) { + return; + } + $to_add = array(); + foreach ($promos as $promo) { + $to_add[] = XDB::format('({?}, {?})', S::i('uid'), $promo); + } + XDB::execute('INSERT IGNORE INTO watch_promo (uid, promo) + VALUES ' . implode(', ', $to_add)); + } - require_once 'notifs.inc.php'; + private function delPromo(PlPage &$page, $promo) + { + $promos = $this->getPromo($page, $promo); + if (!$promos || count($promos) == 0) { + return; + } + $to_delete = array(); + foreach ($promos as $promo) { + $to_delete[] = XDB::format('{?}', $promo); + } + XDB::execute('DELETE FROM watch_promo + WHERE ' . XDB::format('uid = {?}', S::i('uid')) . ' + AND promo IN (' . implode(', ', $to_delete) . ')'); + } - $watch = new Watch(S::v('uid')); + public function addNonRegistered(PlPage &$page, PlUser &$user) + { + XDB::execute('INSERT IGNORE INTO watch_nonins (uid, ni_id) + VALUES ({?}, {?})', S::i('uid'), $user->id()); + } - $res = XDB::query("SELECT promo_sortie - FROM auth_user_md5 - WHERE user_id = {?}", - S::v('uid', -1)); - $promo_sortie = $res->fetchOneCell(); - $page->assign('promo_sortie', $promo_sortie); + public function delNonRegistered(PlPage &$page, PlUser &$user) + { + XDB::execute('DELETE FROM watch_nonins + WHERE uid = {?} AND ni_id = {?}', + S::i('uid'), $user->id()); + } + + public function handler_notifs(&$page, $action = null, $arg = null) + { + $page->changeTpl('carnet/notifs.tpl'); if ($action) { S::assert_xsrf_token(); diff --cc modules/email.php index 01e353e,80dda05..f862879 --- a/modules/email.php +++ b/modules/email.php @@@ -627,17 -636,37 +628,17 @@@ class EmailModule extends PLModul $email = valide_email($email); // vérifications d'usage - $sel = XDB::query("SELECT uid FROM emails WHERE email = {?}", $email); - if (($uid = $sel->fetchOneCell())) { - $dest = User::getSilent($uid); - - // envoi du mail - $message = "Bonjour ! - -Cet email a été généré automatiquement par le service de patte cassée de -Polytechnique.org car un autre utilisateur, " . S::user()->fullName() . ", -nous a signalé qu'en t'envoyant un email, il avait reçu un message d'erreur -indiquant que ton adresse de redirection $email -ne fonctionnait plus ! - -Nous te suggérons de vérifier cette adresse, et le cas échéant de mettre -à jour sur le site <{$globals->baseurl}/emails> tes adresses -de redirection... - -Pour plus de renseignements sur le service de patte cassée, n'hésite pas à -consulter la page <{$globals->baseurl}/emails/broken>. - - -À bientôt sur Polytechnique.org ! -L'équipe d'administration mail->domain . '>'; - - $mail = new PlMailer(); - $mail->setFrom('"Polytechnique.org" mail->domain . '>'); - $mail->addTo($dest->bestEmail()); - $mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!"); - $mail->setTxtBody($message); - $mail->send(); + $uid = XDB::fetchOneCell("SELECT uid + FROM emails + WHERE email = {?}", $email); + if ($uid) { + $dest = User::getWithUID($uid); + + $mail = new PlMailer('emails/broken-web.mail.tpl'); + $mail->assign('email', $email); + $mail->assign('request', S::user()); + $mail->sendTo($dest); - $page->trigSuccess("Email envoyé !"); + $page->trigSuccess('Email envoyé !'); } } elseif (Post::has('email')) { S::assert_xsrf_token(); @@@ -775,16 -807,149 +776,151 @@@ { $page->changeTpl('emails/lost.tpl'); - $page->assign('lost_emails', XDB::iterator(" - SELECT u.user_id, u.hruid - FROM auth_user_md5 AS u - LEFT JOIN emails AS e ON (u.user_id = e.uid AND FIND_IN_SET('active', e.flags)) - WHERE e.uid IS NULL AND FIND_IN_SET('googleapps', u.mail_storage) = 0 AND - u.deces = 0 AND u.perms IN ('user', 'admin', 'disabled') - ORDER BY u.promo DESC, u.nom, u.prenom")); + // TODO: Order by promo. + $page->assign('lost_emails', + XDB::iterator("SELECT a.uid, a.hruid + FROM accounts AS a + INNER JOIN email_options AS eo ON (eo.uid = a.uid) + LEFT JOIN emails AS e ON (a.uid = e.uid AND FIND_IN_SET('active', e.flags)) + WHERE e.uid IS NULL AND FIND_IN_SET('googleapps', eo.storage) = 0 AND + a.state = 'active' + ORDER BY a.hruid")); } + + function handler_broken_addr(&$page) + { + require_once 'emails.inc.php'; + $page->changeTpl('emails/broken_addr.tpl'); + + if (Env::has('sort_broken')) { + S::assert_xsrf_token(); + + $list = trim(Env::v('list')); + if ($list == '') { + $page->trigError('La liste est vide.'); + } else { + $valid_emails = array(); + $invalid_emails = array(); + $broken_list = explode("\n", $list); + sort($broken_list); + foreach ($broken_list as $orig_email) { + $email = valide_email(trim($orig_email)); + if (empty($email) || $email == '@') { + $invalid_emails[] = "$orig_email: invalid email"; + } else { + $res = XDB::query('SELECT COUNT(*) + FROM emails + WHERE email = {?}', $email); + if ($res->fetchOneCell() > 0) { + $valid_emails[] = $email; + } else { + $invalid_emails[] = "$orig_email: no such redirection"; + } + } + } + + $page->assign('valid_emails', $valid_emails); + $page->assign('invalid_emails', $invalid_emails); + } + } + + if (Env::has('process_broken')) { + S::assert_xsrf_token(); + + $list = trim(Env::v('list')); + if ($list == '') { + $page->trigError('La liste est vide.'); + } else { + global $platal; + + $broken_user_list = array(); + $broken_list = explode("\n", $list); + sort($broken_list); + foreach ($broken_list as $orig_email) { + $email = valide_email(trim($orig_email)); + if (empty($email) || $email == '@') { + continue; + } + + $sel = XDB::query( + "SELECT e1.uid, e1.panne != 0 AS panne, count(e2.uid) AS nb_mails, + u.nom, u.prenom, u.promo, a.alias + FROM emails AS e1 + LEFT JOIN emails AS e2 ON (e1.uid = e2.uid AND FIND_IN_SET('active', e2.flags) + AND e1.email != e2.email) + INNER JOIN auth_user_md5 AS u ON (e1.uid = u.user_id) + INNER JOIN aliases AS a ON (u.user_id = a.id AND FIND_IN_SET('bestalias', a.flags)) + WHERE e1.email = {?} + GROUP BY e1.uid", $email); + + if ($x = $sel->fetchOneAssoc()) { + if (!$x['panne']) { + XDB::execute('UPDATE emails + SET panne=NOW(), last=NOW(), panne_level = 1 + WHERE email = {?}', + $email); + } else { + XDB::execute('UPDATE emails + SET last = CURDATE(), panne_level = panne_level + 1 + WHERE email = {?} + AND DATE_ADD(last, INTERVAL 14 DAY) < CURDATE()', + $email); + } + + if (!empty($x['nb_mails'])) { + $mail = new PlMailer('emails/broken.mail.tpl'); + $mail->addTo("\"{$x['prenom']} {$x['nom']}\" <{$x['alias']}@" + . $globals->mail->domain . '>'); + $mail->assign('x', $x); + $mail->assign('email', $email); + $mail->send(); + } + + if (!isset($broken_user_list[$x['alias']])) { + $broken_user_list[$x['alias']] = array($email); + } else { + $broken_user_list[$x['alias']][] = $email; + } + } + } + + XDB::execute("UPDATE emails + SET panne_level = panne_level - 1 + WHERE flags = 'active' AND panne_level > 1 + AND DATE_ADD(last, INTERVAL 1 MONTH) < CURDATE()"); + XDB::execute("UPDATE emails + SET panne_level = 0 + WHERE flags = 'active' AND panne_level = 1 + AND DATE_ADD(last, INTERVAL 1 YEAR) < CURDATE()"); + + // Output the list of users with recently broken addresses, + // along with the count of valid redirections. + header('Content-Type: text/x-csv; charset=utf-8;'); + header('Cache-Control: no-cache'); + + $csv = fopen('php://output', 'w'); + fputcsv($csv, array('nom', 'prenom', 'alias', 'bounce', 'nbmails', 'url'), ';'); + foreach ($broken_user_list as $alias => $mails) { + $sel = Xdb::query( + "SELECT u.user_id, count(e.email) AS nb_mails, u.nom, u.prenom, u.promo + FROM aliases AS a + INNER JOIN auth_user_md5 AS u ON a.id = u.user_id + LEFT JOIN emails AS e ON (e.uid = u.user_id + AND FIND_IN_SET('active', e.flags) AND e.panne = 0) + WHERE a.alias = {?} + GROUP BY u.user_id", $alias); + + if ($x = $sel->fetchOneAssoc()) { + fputcsv($csv, array($x['nom'], $x['prenom'], $x['promo'], $alias, + join(',', $mails), $x['nb_mails']), + 'https://www.polytechnique.org/marketing/broken/' . $alias, ';'); + } + } + fclose($csv); + exit; + } + } + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: diff --cc modules/payment.php index 13c853c,415b607..48c9144 --- a/modules/payment.php +++ b/modules/payment.php @@@ -213,16 -217,28 +213,26 @@@ class PaymentModule extends PLModul } /* on fait l'insertion en base de donnees */ - XDB::execute("INSERT INTO paiement.transactions (id,uid,ref,fullref,montant,cle,comment) - VALUES ({?},{?},{?},{?},{?},{?},{?})", - $champ901, $uid, $ref, $champ200, $montant, $champ905,Env::v('comment')); + XDB::execute("INSERT INTO paiement.transactions (id, uid, ref, fullref, montant, cle, comment) + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?})", + $champ901, $user->id(), $ref, $champ200, $montant, $champ905, Env::v('comment')); + // We check if it is an Xnet payment and then update the related ML. + $res = XDB::query('SELECT eid + FROM groupex.evenements + WHERE paiement_id = {?}', $ref); + if ($eid = $res->fetchOneCell()) { + $this->load('xnetevents.inc.php'); + $evt = get_event_detail($eid); + subscribe_lists_event(0, $uid, $evt, $montant, true); + } + /* on genere le mail de confirmation */ - $conf_text = str_replace("",$prenom,$conf_text); - $conf_text = str_replace("",$nom,$conf_text); - $conf_text = str_replace("",$promo,$conf_text); - $conf_text = str_replace("",$montant,$conf_text); - $conf_text = str_replace("", Env::v('comment'), $conf_text); - $conf_text = str_replace("",$femme ? "Chère" : "Cher",$conf_text); - $conf_text = str_replace("",$femme ? "Chère" : "Cher",$conf_text); + $conf_text = str_replace( + array('', '', '', '', '', '', 'comment>'), + array($user->firstName(), $user->lastName(), $user->promo(), $montant, + $user->isFemale() ? 'Chère' : 'Cher', $user->isFemale() ? 'Chère' : 'Cher', + Env::v('comment')), $conf_text); global $globals; $mymail = new PlMailer(); @@@ -297,15 -318,27 +307,25 @@@ } /* on fait l'insertion en base de donnees */ - XDB::execute("INSERT INTO paiement.transactions (id,uid,ref,fullref,montant,cle,comment) - VALUES ({?},{?},{?},{?},{?},{?},{?})", - $no_transaction, $uid, $ref, $fullref, $montant, $clef, Env::v('comment')); + XDB::execute("INSERT INTO paiement.transactions (id, uid, ref, fullref, montant, cle, comment) + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?})", + $no_transaction, $user->id(), $ref, $fullref, $montant, $clef, Env::v('comment')); + // We check if it is an Xnet payment and then update the related ML. + $res = XDB::query('SELECT eid + FROM groupex.evenements + WHERE paiement_id = {?}', $ref); + if ($eid = $res->fetchOneCell()) { + $this->load('xnetevents.inc.php'); + $evt = get_event_detail($eid); + subscribe_lists_event(0, $uid, $evt, $montant, true); + } + /* on genere le mail de confirmation */ - $conf_text = str_replace("",$prenom,$conf_text); - $conf_text = str_replace("",$nom,$conf_text); - $conf_text = str_replace("",$promo,$conf_text); - $conf_text = str_replace("",$montant,$conf_text); - $conf_text = str_replace("",$femme ? "Chère" : "Cher",$conf_text); - $conf_text = str_replace("",$femme ? "Chère" : "Cher",$conf_text); + $conf_text = str_replace(array('', '', '', '', '', ''), + array($user->firstName(), $user->lastName(), $user->promo(), $montant, + $user->isFemale() ? 'Chère' : 'Cher', + $user->isFemale() ? 'Chère' : 'Cher'), $conf_text); global $globals; $mymail = new PlMailer(); diff --cc modules/platal.php index 94a4077,1279260..b480a83 --- a/modules/platal.php +++ b/modules/platal.php @@@ -299,50 -296,54 +299,50 @@@ class PlatalModule extends PLModul $mailorg = strtok(Env::v('login'), '@'); - // paragraphe rajouté : si la date de naissance dans la base n'existe pas, on l'update - // avec celle fournie ici en espérant que c'est la bonne - - $res = XDB::query( - "SELECT user_id, naissance - FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON (u.user_id=a.id AND type != 'homonyme') - WHERE a.alias={?} AND u.perms IN ('admin','user') AND u.deces=0", $mailorg); - list($uid, $naissance) = $res->fetchOneRow(); - - if ($naissance == $birth) { - $res = XDB::query("SELECT COUNT(*) - FROM emails - WHERE uid = {?} AND flags != 'panne' AND flags != 'filter'", $uid); - $count = intval($res->fetchOneCell()); - if ($count == 0) { - $page->assign('no_addr', true); - return; - } + $profile = Profile::get(Env::t('login')); + if (is_null($profile) || $profile->birthdate != $birth) { + $page->trigError('Les informations que tu as rentrées ne permettent pas de récupérer ton mot de passe.
'. + 'Si tu as un homonyme, utilise prenom.nom.promo comme login'); + return; + } + + $user = $profile->owner(); + if ($user->state != 'active') { + $page->trigError('Ton compte n\'est pas activé.'); + return; + } - $page->assign('ok', true); + $res = XDB::query("SELECT COUNT(*) + FROM emails + WHERE uid = {?} AND flags != 'panne' AND flags != 'filter'", $user->id()); + $count = intval($res->fetchOneCell()); + if ($count == 0) { + $page->assign('no_addr', true); + return; + } - $url = rand_url_id(); - XDB::execute('INSERT INTO perte_pass (certificat,uid,created) - VALUES ({?},{?},NOW())', $url, $uid); - $res = XDB::query('SELECT email + $page->assign('ok', true); + + $url = rand_url_id(); + XDB::execute('INSERT INTO perte_pass (certificat,uid,created) + VALUES ({?},{?},NOW())', $url, $user->id()); + $res = XDB::query('SELECT email + FROM emails + WHERE uid = {?} AND email = {?}', + $user->id(), Post::v('email')); + if ($res->numRows()) { + $mails = $res->fetchOneCell(); + } else { - $res = XDB::query('SELECT email ++ $res = XDB::query("SELECT email FROM emails - WHERE uid = {?} AND NOT FIND_IN_SET("filter", flags)', $user->id()); - WHERE uid = {?} AND email = {?}', - $uid, Post::v('email')); - if ($res->numRows()) { - $mails = $res->fetchOneCell(); - } else { - $user = User::getSilent($uid); - $mails = $user->bestEmail(); - $res = XDB::query("SELECT email - FROM emails - WHERE uid = {?} AND NOT FIND_IN_SET('filter', flags) - AND NOT FIND_IN_SET('active', flags)", - $uid); - if ($res->numRows() > 0) { - $mails .= ', ' . implode(', ', $res->fetchColumn()); - } - } - $mymail = new PlMailer(); - $mymail->setFrom('"Gestion des mots de passe" mail->domain . '>'); - $mymail->addTo($mails); - $mymail->setSubject('Ton certificat d\'authentification'); - $mymail->setTxtBody("Visite la page suivante qui expire dans six heures : ++ WHERE uid = {?} AND NOT FIND_IN_SET('filter', flags)", $user->id()); + $mails = implode(', ', $res->fetchColumn()); + } + $mymail = new PlMailer(); + $mymail->setFrom('"Gestion des mots de passe" mail->domain . '>'); + $mymail->addTo($mails); - $mymail->setSubject('Ton certificat d\'authentification'); ++ $mymail->setSubject("Ton certificat d'authentification"); + $mymail->setTxtBody("Visite la page suivante qui expire dans six heures : {$globals->baseurl}/tmpPWD/$url Si en cliquant dessus tu n'y arrives pas, copie intégralement l'adresse dans la barre de ton navigateur. Si tu n'as pas utilisé ce lien dans six heures, tu peux tout simplement recommencer cette procédure. diff --cc modules/profile.php index 3e0e413,f64d8c7..287e1a4 --- a/modules/profile.php +++ b/modules/profile.php @@@ -332,13 -340,18 +333,13 @@@ class ProfileModule extends PLModul if (!$user) { return PL_NOT_FOUND; } - - $res = XDB::query("SELECT matricule_ax - FROM auth_user_md5 - WHERE user_id = {?}", $user->id()); - $mat = $res->fetchOneCell(); - if (!intval($mat)) { - $page->kill("Le matricule AX de {$user->login()} est inconnu"); + if (!$user->ax_id) { + $page->kill("Le matricule AX de {$user->hrid()} est inconnu"); } - http_redirect("http://www.polytechniciens.com/?page=AX_FICHE_ANCIEN&anc_id=" . $user->ax_id); - http_redirect("http://www.polytechniciens.com/?page=AX_FICHE_ANCIEN&ancc_id=$mat"); ++ http_redirect("http://www.polytechniciens.com/?page=AX_FICHE_ANCIEN&ancc_id=" . $user->ax_id); } - function handler_p_edit(&$page, $opened_tab = null, $mode = null, $success = null) + function handler_p_edit(&$page, $user = null, $opened_tab = null, $mode = null, $success = null) { global $globals; diff --cc modules/xnetevents.php index 889346e,ebde459..d89dd7e --- a/modules/xnetevents.php +++ b/modules/xnetevents.php @@@ -593,26 -596,63 +592,25 @@@ class XnetEventsModule extends PLModul $page->assign('moments', $evt['moments']); } - $page->assign('alphabet', array()); - $tri = (Env::v('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo'); - $whereitemid = is_null($item_id) ? '' : "AND ep.item_id = $item_id"; - $res = XDB::iterRow( - 'SELECT UPPER(SUBSTRING(IF(u.nom IS NULL, m.nom, - IF(u.nom_usage<>"", u.nom_usage, u.nom)), 1, 1)), - COUNT(DISTINCT ep.uid) - FROM groupex.evenements_participants AS ep - INNER JOIN groupex.evenements AS e ON (ep.eid = e.eid) - LEFT JOIN groupex.membres AS m ON ( ep.uid = m.uid AND e.asso_id = m.asso_id) - LEFT JOIN auth_user_md5 AS u ON ( u.user_id = ep.uid ) - WHERE ep.eid = {?} '.$whereitemid . ' - GROUP BY UPPER(SUBSTRING(IF(u.nom IS NULL,m.nom,u.nom), 1, 1))', $evt['eid']); - - $alphabet = array(); - $nb_tot = 0; - while (list($char, $nb) = $res->next()) { - $alphabet[ord($char)] = $char; - $nb_tot += $nb; - if (Env::has('initiale') && $char == mb_strtoupper(Env::v('initiale'))) { - $tot = $nb; - } - } - ksort($alphabet); - $page->assign('alphabet', $alphabet); - if ($evt['paiement_id']) { - $res = XDB::iterator( - "SELECT IF(u.nom_usage<>'', u.nom_usage, u.nom) AS nom, u.prenom, - u.promo, a.alias AS email, t.montant - FROM {$globals->money->mpay_tprefix}transactions AS t - INNER JOIN auth_user_md5 AS u ON(t.uid = u.user_id) - INNER JOIN aliases AS a ON (a.id = t.uid AND a.type='a_vie' ) - LEFT JOIN groupex.evenements_participants AS ep ON(ep.uid = t.uid AND ep.eid = {?}) - WHERE t.ref = {?} AND ep.uid IS NULL", - $evt['eid'], $evt['paiement_id']); - $page->assign('oublis', $res->total()); - $page->assign('oubliinscription', $res); - } - - $absents = XDB::iterator("SELECT p.uid, - IF(m.origine = 'X', IF(u.nom_usage != '', u.nom_usage, u.nom), m.nom) AS nom, - IF(m.origine = 'X', u.prenom, u.prenom) AS prenom, - IF(m.origine = 'X', u.promo, m.origine) AS promo, - IF(m.origine = 'X', FIND_IN_SET('femme', u.flags), m.sexe) AS sexe, - IF(m.origine = 'X', a.alias, m.email) AS email - FROM groupex.evenements_participants AS p - INNER JOIN groupex.membres AS m USING(uid) - LEFT JOIN groupex.evenements_participants AS p2 ON (p2.uid = m.uid AND p2.eid = p.eid - AND p2.nb != 0) - LEFT JOIN auth_user_md5 AS u ON (u.user_id = m.uid) - LEFT JOIN aliases AS a ON (a.id = u.user_id AND a.type = 'a_vie') - WHERE p.eid = {?} AND p2.eid IS NULL - " . (Env::v('initiale') ? " AND IF(u.nom IS NULL, m.nom, - IF(u.nom_usage<>'', u.nom_usage, u.nom)) LIKE '" . Env::v('initiale') . "%'" - : "") . " - GROUP BY m.uid - ORDER BY nom, prenom, promo", $evt['eid']); + $infos = User::getBulkUsersWithUIDs( + XDB::fetchAllAssoc('SELECT t.uid, t.montant + FROM ' . $globals->money->mpay_tprefix . 'transactions AS t + LEFT JOIN groupex.evenements_participants AS ep ON(ep.uid = t.uid AND ep.eid = {?}) + WHERE t.ref = {?} AND ep.uid IS NULL', + $evt['eid'], $evt['paiement_id']), + 'uid', 'user'); + $page->assign('oublis', count($infos)); + $page->assign('oubliinscription', $infos); + } + + $absents = User::getBulkUsersFromDB('SELECT p.uid + FROM groupex.evenements_participants AS p + LEFT JOIN groupex.evenements_participants AS p2 ON (p2.uid = p.uid + AND p2.eid = p.eid + AND p2.nb != 0) + WHERE p.eid = {?} AND p2.eid IS NULL + GROUP BY p.uid', $evt['eid']); $ofs = Env::i('offset'); $tot = (Env::v('initiale') ? $tot : $nb_tot); diff --cc modules/xnetevents/xnetevents.inc.php index 57cffaf,9e79dfd..eab9557 --- a/modules/xnetevents/xnetevents.inc.php +++ b/modules/xnetevents/xnetevents.inc.php @@@ -27,23 -27,31 +27,25 @@@ function get_event_detail($eid, $item_i if (is_null($asso_id)) { $asso_id = $globals->asso('id'); } - $res = XDB::query( - "SELECT SUM(nb) AS nb_tot, COUNT(DISTINCT ep.uid) AS nb, e.*, - IF(e.deadline_inscription, e.deadline_inscription >= LEFT(NOW(), 10), 1) AS inscr_open, - LEFT(10, e.debut) AS first_day, LEFT(10, e.fin) AS last_day, - LEFT(NOW(), 10) AS now, ei.titre, - al.vid AS absent_list, pl.vid AS participant_list, - bl.vid AS payed_list, ul.vid AS booked_unpayed_list, - a.nom, a.prenom, a.promo, aa.alias - FROM groupex.evenements AS e - INNER JOIN x4dat.auth_user_md5 AS a ON a.user_id = e.organisateur_uid - INNER JOIN x4dat.aliases AS aa ON (aa.type = 'a_vie' AND aa.id = a.user_id) - INNER JOIN groupex.evenements_items AS ei ON (e.eid = ei.eid) - LEFT JOIN groupex.evenements_participants AS ep ON (e.eid = ep.eid AND ei.item_id = ep.item_id) - LEFT JOIN virtual AS al ON (al.type = 'evt' AND al.alias = CONCAT(short_name, {?})) - LEFT JOIN virtual AS pl ON (pl.type = 'evt' AND pl.alias = CONCAT(short_name, {?})) - LEFT JOIN virtual AS bl ON (bl.type = 'evt' AND bl.alias = CONCAT(short_name, {?})) - LEFT JOIN virtual AS ul ON (ul.type = 'evt' AND ul.alias = CONCAT(short_name, {?})) - WHERE (e.eid = {?} OR e.short_name = {?}) AND ei.item_id = {?} AND e.asso_id = {?} - GROUP BY ei.item_id", - '-absents@' . $globals->xnet->evts_domain, - '-participants@' . $globals->xnet->evts_domain, - '-paye@' . $globals->xnet->evts_domain, - '-participants-non-paye@' . $globals->xnet->evts_domain, - $eid, $eid, $item_id ? $item_id : 1, $asso_id); - + $res = XDB::query('SELECT SUM(nb) AS nb_tot, COUNT(DISTINCT ep.uid) AS nb, e.*, + IF(e.deadline_inscription, + e.deadline_inscription >= LEFT(NOW(), 10), + 1) AS inscr_open, + LEFT(10, e.debut) AS start_day, LEFT(10, e.fin) AS last_day, + LEFT(NOW(), 10) AS now, + ei.titre, al.vid AS absent_list, pl.vid AS participant_list + FROM groupex.evenements AS e + INNER JOIN groupex.evenements_items AS ei ON (e.eid = ei.eid) + LEFT JOIN groupex.evenements_participants AS ep ON(e.eid = ep.eid AND ei.item_id = ep.item_id) + LEFT JOIN virtual AS al ON(al.type = \'evt\' AND al.alias = CONCAT(short_name, {?})) + LEFT JOIN virtual AS pl ON(pl.type = \'evt\' AND pl.alias = CONCAT(short_name, {?})) + WHERE (e.eid = {?} OR e.short_name = {?}) AND ei.item_id = {?} AND e.asso_id = {?} + GROUP BY ei.item_id', + '-absents@'.$globals->xnet->evts_domain, + '-participants@'.$globals->xnet->evts_domain, ++ '-paye@' . $globals->xnet->evts_domain, ++ '-participants-non-paye@' . $globals->xnet->evts_domain, + $eid, $eid, $item_id ? $item_id : 1, $asso_id); $evt = $res->fetchOneAssoc(); if (!$evt) { @@@ -269,33 -320,41 +283,40 @@@ function event_change_shortname(&$page if (!$old && $new) { // if we have a first new short_name create the lists + $lastid = array(); + $where = array( + '-participants@' => 'ep.nb > 0', + '-paye@' => 'ep.paid > 0', + '-participants-non-paye@' => 'ep.nb > 0 AND ep.paid = 0' + ); + + foreach (array('-absents@', '-participants@', '-paye@', '-participants-non-paye@') as $v) { + XDB::execute("INSERT INTO virtual + SET type = 'evt', alias = {?}", + $new . $v . $globals->xnet->evts_domain); + + $lastid[$v] = XDB::insertId(); + } - XDB::execute("INSERT INTO virtual SET type = 'evt', alias = {?}", - $new.'-participants@'.$globals->xnet->evts_domain); - - $lastid = XDB::insertId(); - XDB::execute('INSERT IGNORE INTO virtual_redirect ( - SELECT {?} AS vid, IF(al.alias IS NULL, a.email, CONCAT(al.alias, {?})) AS redirect - FROM groupex.evenements_participants AS ep - LEFT JOIN accounts AS a ON (ep.uid = a.uid) - LEFT JOIN aliases AS al ON (al.id = a.uid AND al.type = \'a_vie\') - WHERE ep.eid = {?} AND ep.nb > 0 - GROUP BY ep.uid)', - $lastid, '@'.$globals->mail->domain, $eid); - - XDB::execute("INSERT INTO virtual SET type = 'evt', alias = {?}", - $new.'-absents@'.$globals->xnet->evts_domain); - - $lastid = XDB::insertId(); + foreach (array('-participants@', '-paye@', '-participants-non-paye@') as $v) { - XDB::execute("INSERT IGNORE INTO virtual_redirect ( - SELECT {?} AS vid, IF(a.alias IS NULL, m.email, CONCAT(a.alias, {?})) AS redirect - FROM groupex.evenements_participants AS ep - LEFT JOIN groupex.membres AS m ON (ep.uid = m.uid) - LEFT JOIN auth_user_md5 AS u ON (u.user_id = ep.uid) - LEFT JOIN aliases AS a ON (a.id = ep.uid AND a.type = 'a_vie') - WHERE ep.eid = {?} AND " . $where[$v] . " - GROUP BY ep.uid)", - $lastid[$v], '@' . $globals->mail->domain, $eid); ++ XDB::execute("INSERT IGNORE INTO virtual_redirect ( ++ SELECT {?} AS vid, IF(al.alias IS NULL, a.email, CONCAT(al.alias, {?})) AS redirect ++ FROM groupex.evenements_participants AS ep ++ LEFT JOIN accounts AS a ON (ep.uid = a.uid) ++ LEFT JOIN aliases AS al ON (al.id = a.uid AND al.type = 'a_vie') ++ WHERE ep.eid = {?} AND " . $where[$v] . " ++ GROUP BY ep.uid)", ++ $lastid[$v], '@' . $globals->mail->domain, $eid); + } - XDB::execute("INSERT IGNORE INTO virtual_redirect ( - SELECT {?} AS vid, IF(a.alias IS NULL, m.email, CONCAT(a.alias, {?})) AS redirect - FROM groupex.membres AS m - LEFT JOIN groupex.evenements_participants AS ep ON (ep.uid = m.uid AND ep.eid = {?}) - LEFT JOIN auth_user_md5 AS u ON (u.user_id = m.uid) - LEFT JOIN aliases AS a ON (a.id = m.uid AND a.type = 'a_vie ') - WHERE m.asso_id = {?} AND ep.uid IS NULL - GROUP BY m.uid)", - $lastid['-absents@'], '@' . $globals->mail->domain, $eid, $globals->asso('id')); + XDB::execute("INSERT IGNORE INTO virtual_redirect ( + SELECT {?} AS vid, IF(al.alias IS NULL, a.email, CONCAT(al.alias, {?})) AS redirect + FROM groupex.membres AS m + LEFT JOIN groupex.evenements_participants AS ep ON (ep.uid = m.uid AND ep.eid = {?}) - LEFT JOIN accounts AS a ON (a.uid = m.uid) ++ LEFT JOIN accounts AS a ON (a.uid = m.uid) + LEFT JOIN aliases AS al ON (al.id = a.uid AND al.type = 'a_vie') + WHERE m.asso_id = {?} AND ep.uid IS NULL + GROUP BY m.uid)", - $lastid, "@".$globals->mail->domain, $eid, $globals->asso('id')); ++ $lastid['-absents@'], '@' . $globals->mail->domain, $eid, $globals->asso('id')); return $new; } diff --cc modules/xnetgrp.php index bb1cda1,4454a63..a1af600 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@@ -181,9 -238,9 +181,9 @@@ class XnetGrpModule extends PLModul } else { $site = ""; } - if (S::admin()) { + if (S::has_perms()) { if (Post::v('mail_domain') && (strstr(Post::v('mail_domain'), '.') === false)) { - $page->trigError("Le domaine doit être un FQDN (aucune modification effectuée) !!!"); + $page->trigError('Le domaine doit être un FQDN (aucune modification effectuée) !!!'); return; } XDB::execute( @@@ -807,9 -964,9 +802,9 @@@ } if ($this->unsubscribe($user)) { - $page->trigSuccess("{$user->fullName()} a été désinscrit du groupe !"); - $page->trigSuccess("{$user['prenom']} {$user['nom']} a été désabonné du groupe !"); ++ $page->trigSuccess("{$user->fullName()} a été désinscrit du groupe !"); } else { - $page->trigWarning("{$user->fullName()} a été désinscrit du groupe, mais des erreurs subsistent !"); - $page->trigWarning("{$user['prenom']} {$user['nom']} a été désabonné du groupe, mais des erreurs subsistent !"); ++ $page->trigWarning("{$user->fullName()} a été désinscrit du groupe, mais des erreurs subsistent !"); } } diff --cc modules/xnetlists.php index 8442956,95c71bd..d79dbe0 --- a/modules/xnetlists.php +++ b/modules/xnetlists.php @@@ -247,21 -256,37 +247,21 @@@ class XnetListsModule extends ListsModu if (Env::has('add_member')) { S::assert_xsrf_token(); - $add = Env::v('add_member'); - if (strstr($add, '@')) { - list($mbox,$dom) = explode('@', strtolower($add)); - } else { - $mbox = $add; - $dom = 'm4x.org'; + $add = Env::t('add_member'); + $user = User::getSilent($add); + if ($user) { + $add = $user->forlifeEmail(); + } else if (!User::isForeignEmailAddress($add)) { + $add = null; } - if ($dom == 'polytechnique.org' || $dom == 'm4x.org') { - $res = XDB::query( - "SELECT a.alias, b.alias - FROM x4dat.aliases AS a - LEFT JOIN x4dat.aliases AS b ON (a.id=b.id AND b.type = 'a_vie') - WHERE a.alias={?} AND a.type!='homonyme'", $mbox); - if (list($alias, $blias) = $res->fetchOneRow()) { - $alias = empty($blias) ? $alias : $blias; - XDB::query( - "INSERT IGNORE INTO x4dat.virtual_redirect (vid,redirect) - SELECT vid, {?} - FROM x4dat.virtual - WHERE alias={?}", "$alias@m4x.org", $lfull); - $page->trigSuccess("$alias@m4x.org ajouté"); - } else { - $page->trigError("$mbox@{$globals->mail->domain} n'existe pas."); - } + if (!empty($add)) { + XDB::execute('INSERT INTO x4dat.virtual_redirect (vid, redirect) + SELECT vid, {?}, + FROM x4dat.virtual + WHERE alias = {?}', strtolower($add), $lfull); + $page->trigSuccess($add . ' ajouté.'); } else { - $page->trigError($add . ' n\'existe pas.'); - XDB::query( - "INSERT IGNORE INTO x4dat.virtual_redirect (vid,redirect) - SELECT vid,{?} - FROM x4dat.virtual - WHERE alias={?}", "$mbox@$dom", $lfull); - $page->trigSuccess("$mbox@$dom ajouté"); ++ $page->trigError($add . " n'existe pas."); } } diff --cc templates/admin/dead_but_active.tpl index b8657db,699dd7b..ea076b5 --- a/templates/admin/dead_but_active.tpl +++ b/templates/admin/dead_but_active.tpl @@@ -39,14 -39,13 +39,13 @@@ {$d.promo} {icon name=user_suit title='Afficher la fiche'} - {* - *}{icon name=user_gray title="fiche AX"} + {icon name=user_gray title="fiche AX"} {icon name=wrench title='Administrer user'} - {$d.prenom} {$d.nom} - {$d.deces} + {$d.directory_name} + {$d.deathdate} - {if $d.last gt $d.deces}{$d.last}{elseif $d.last}{$d.last}{else}-{/if} + {if $d.last gt $d.deathdate}{$d.last}{elseif $d.last}{$d.last}{else}-{/if} {/iterate} diff --cc templates/events/index.tpl index d7dad61,23004ce..58dd7f6 --- a/templates/events/index.tpl +++ b/templates/events/index.tpl @@@ -27,8 -27,8 +27,8 @@@ {else}

-Bienvenue {$smarty.session.yourself_name}{if $birthday} +Bienvenue {$smarty.session.display_name}{if $birthday} -  et joyeux anniversaire de la part de toute l'équipe ! +  et joyeux anniversaire de la part de toute l'équipe ! {else}, {/if}

diff --cc templates/include/minifiche.tpl index 53f7d6b,b6f1d2a..cc38219 --- a/templates/include/minifiche.tpl +++ b/templates/include/minifiche.tpl @@@ -98,13 -91,13 +98,13 @@@ {if hasPerm('admin')} {/if} diff --cc templates/marketing/promo.tpl index a78da79,a0f5e08..e400db0 --- a/templates/marketing/promo.tpl +++ b/templates/marketing/promo.tpl @@@ -67,7 -75,7 +67,7 @@@

- {$nonins|@count} Polytechniciens de la promo {$promo} ne sont pas inscrits ! -{$nonins->total()} Polytechniciens de la promo {$promo} ne sont pas inscrits ! ++{$nonins|@count} Polytechniciens de la promo {$promo} ne sont pas inscrits !

diff --cc templates/marketing/this_week.tpl index b08b4de,330a469..91c864c --- a/templates/marketing/this_week.tpl +++ b/templates/marketing/this_week.tpl @@@ -24,7 -24,7 +24,7 @@@

Inscrits des 7 derniers jours

- {$users|@count} Polytechniciens se sont inscrits ces 7 derniers jours ! -{$ins->total()} Polytechniciens se sont inscrits ces 7 derniers jours ! ++{$users|@count} Polytechniciens se sont inscrits ces 7 derniers jours !

diff --cc templates/newsletter/nl.mail.tpl index 6c23ac5,f1bf66c..95220ba --- a/templates/newsletter/nl.mail.tpl +++ b/templates/newsletter/nl.mail.tpl @@@ -92,8 -92,8 +92,8 @@@ ne plus recevoir : <https://www.poly
{/if}
-
{$nl->title()}
+ -
{$nl->head($prenom, $nom, $sexe, 'html')|smarty:nodefaults}
+
{$nl->head($user, 'html')|smarty:nodefaults}
{foreach from=$nl->_arts key=cid item=arts name=cats}
diff --cc templates/payment/xnet.tpl index a89e9c5,c53ce98..7b9b919 --- a/templates/payment/xnet.tpl +++ b/templates/payment/xnet.tpl @@@ -20,10 -20,10 +20,10 @@@ {* *} {**************************************************************************} -

{$asso.nom} : Gestion des télépaiements

+

{$asso->nom} : Gestion des télépaiements

- Voici la liste des paiements en ligne possible pour le groupe {$asso->nom} : -Voici la liste des paiements en ligne possible pour le groupe {$asso.nom} : ++Voici la liste des paiements en ligne possible pour le groupe {$asso->nom} :

{foreach from=$titres item=p} diff --cc templates/platal/webredirect.tpl index fde9623,94546c0..8d28298 --- a/templates/platal/webredirect.tpl +++ b/templates/platal/webredirect.tpl @@@ -44,9 -44,19 +44,18 @@@

Mise en place de la redirection

+

+ {if $carva} + Actuellement, les adresses + http://www.carva.org/{$bestalias} et + http://www.carva.org/{$smarty.session.hruid} + sont redirigées sur http://{$carva} + {else} + La redirection n'est pas utilisée… + {/if} -

- Pour modifier cette redirection remplis le champ suivant et clique sur Valider. + Pour modifier ta redirection remplis le champ suivant et clique sur Valider. {if $carva} Si tu veux annuler ta redirection, clique sur Supprimer. {/if} diff --cc templates/xnet/skin.tpl index 73d879b,9322c0b..d7337f8 --- a/templates/xnet/skin.tpl +++ b/templates/xnet/skin.tpl @@@ -116,11 -116,10 +116,11 @@@ {/if} {/foreach} {/foreach} - {if $asso && ($is_admin || + {assign var=asso_id value=$asso->id} + {if $asso && $is_admin || ($smarty.session.suid && ($smarty.session.suid.perms->hasFlag('admin') || - $smarty.session.suid.may_update[$asso.id])))} + $smarty.session.suid.may_update[$asso_id]))} -

Voir le site comme...

+

Voir le site comme…

- ++
diff --cc templates/xnetgrp/inscrire.tpl index d2c8a29,594cbb0..8d09e19 --- a/templates/xnetgrp/inscrire.tpl +++ b/templates/xnetgrp/inscrire.tpl @@@ -60,9 -60,9 +60,9 @@@ {elseif $smarty.post.inscrire}

- Ta demande d'inscription a bien été envoyée ! Tu seras averti{if $user->isFemale()}e{/if} par email de la suite qui lui sera donnée. + Ta demande d'inscription a bien été envoyée ! Tu seras averti{if $smarty.session.femme}e{/if} par email de la suite qui lui sera donnée.

-

[Retour à la page d'accueil de {$asso.nom}]

+

[Retour à la page d'accueil de {$asso->nom}]

{else} diff --cc templates/xnetgrp/mail.tpl index e66c6ff,cfb56c4..23a15f6 --- a/templates/xnetgrp/mail.tpl +++ b/templates/xnetgrp/mail.tpl @@@ -131,11 -131,11 +131,11 @@@ masculin ou féminin, par son prénom, {else} <cher> <prenom>, -Nous avons le plaisir de t'adresser la lettre mensuelle du groupe {$asso.nom}. +Nous avons le plaisir de t'adresser la lettre mensuelle du groupe {$asso->nom}. - (insérer le texte...) + (insérer le texte…) -Le bureau du groupe {$asso.nom}. +Le bureau du groupe {$asso->nom}. {/if} diff --cc templates/xnetgrp/membres-del.tpl index 9a46b52,2a46e54..dc320f8 --- a/templates/xnetgrp/membres-del.tpl +++ b/templates/xnetgrp/membres-del.tpl @@@ -44,8 -44,8 +44,8 @@@

{if $self} - Êtes-vous sûr de vouloir vous désinscrire du groupe {$asso.nom} et de toutes + Êtes-vous sûr de vouloir vous désinscrire du groupe {$asso->nom} et de toutes - les listes de diffusion associées ? + les listes de diffusion associées ? {else} Êtes-vous sûr de vouloir supprimer {$user.prenom} {$user.nom} du groupe, lui retirer tous les droits associés à son statut de membre diff --cc templates/xnetgrp/membres-edit.tpl index 044f821,c25d873..4760885 --- a/templates/xnetgrp/membres-edit.tpl +++ b/templates/xnetgrp/membres-edit.tpl @@@ -116,12 -123,12 +116,12 @@@ Commentaire : -
+
- Poste, origine, ... (accessible à toutes les personnes autorisées à consulter l'annuaire) + Poste, origine… (accessible à toutes les personnes autorisées à consulter l'annuaire) - {if $user.origine neq X} - + {if $user->type eq 'ext'} + diff --cc templates/xnetgrp/subscribe-valid.tpl index 2dcf9ff,3c0a0ea..5fa90aa --- a/templates/xnetgrp/subscribe-valid.tpl +++ b/templates/xnetgrp/subscribe-valid.tpl @@@ -20,7 -20,7 +20,7 @@@ {* *} {**************************************************************************} -

{$asso->nom} : Validation des inscriptions

-

{$asso.nom} : validation des inscriptions

++

{$asso->nom} : validation des inscriptions