X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fxnetgrp.php;h=bd2fdf2400566d298d19269d590e9e8a3cec79f2;hb=a5878ac19cc6ea75a753470cf68b7d2180d6cd51;hp=f5fb9bda3ac6264a2e96ce805dc681c306d3b3a4;hpb=2f8677c278f7ce5e3bdd9506177d89dfbab6ac9e;p=platal.git diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index f5fb9bd..bd2fdf2 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -209,7 +209,7 @@ class XnetGrpModule extends PLModule global $globals; $site = $globals->asso('site'); if (!$site) { - $page->trig('Le groupe n\'a pas de site web'); + $page->trig('Le groupe n\'a pas de site web.'); return $this->handler_index($page); } http_redirect($site); @@ -222,6 +222,8 @@ class XnetGrpModule extends PLModule $page->changeTpl('xnetgrp/edit.tpl'); if (Post::has('submit')) { + S::assert_xsrf_token(); + if (S::has_perms()) { if (Post::v('mail_domain') && (strstr(Post::v('mail_domain'), '.') === false)) { $page->trig("le domaine doit être un FQDN (aucune modif effectuée) !!!"); @@ -257,7 +259,7 @@ class XnetGrpModule extends PLModule Post::v('descr'), Post::v('site'), Post::v('mail'), Post::v('resp'), Post::v('forum'), Post::has('ax'), - Post::has('pub'), + Post::v('pub'), Post::v('sub_url'), Post::v('unsub_url'), $globals->asso('id')); } @@ -432,7 +434,7 @@ class XnetGrpModule extends PLModule m.perms='admin' AS admin, m.origine='X' AS x, u.perms!='pending' AS inscrit, - m.uid, IF(e.email IS NULL,NULL,1) AS actif + m.uid, IF(e.email IS NULL AND FIND_IN_SET('googleapps', u.mail_storage) = 0, NULL, 1) AS actif FROM groupex.membres AS m 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' ) @@ -510,10 +512,11 @@ class XnetGrpModule extends PLModule . "j'ai le plaisir de t'annoncer que ton inscription a été validée !\n" . "\n" . "Bien cordialement,\n" + . "-- \n" . "{$_SESSION["prenom"]} {$_SESSION["nom"]}."; $mailer->setTxtBody($message); $mailer->send(); - $page->kill("$prenom $nom a bien été inscrit" . ($sexe ? 'e' : '') . "."); + pl_redirect("member/$u"); } elseif (Env::has('refuse')) { @@ -524,7 +527,7 @@ class XnetGrpModule extends PLModule $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription annulée'); $mailer->setTxtBody(Env::v('motif')); $mailer->send(); - $page->kill("la demande $prenom $nom a bien été refusée"); + $page->kill("La demande de $prenom $nom a bien été refusée."); } else { $page->assign('show_form', true); $page->assign('prenom', $prenom); @@ -538,7 +541,7 @@ class XnetGrpModule extends PLModule } if (is_member()) { - $page->kill("tu es déjà membre !"); + $page->kill("Tu es déjà membre !"); return; } @@ -722,7 +725,7 @@ class XnetGrpModule extends PLModule pl_redirect("member/$email"); } } else { - $page->trig("« $email » n'est pas une adresse mail valide"); + $page->trig("« $email » n'est pas une adresse mail valide."); } } } @@ -771,7 +774,7 @@ class XnetGrpModule extends PLModule $user_same_email = get_infos($user['email']); $domain = $globals->asso('mail_domain'); - if (!$domain || !empty($user_same_email)) { + if (!$domain || (!empty($user_same_email) && $user_same_email['uid'] != $user['uid'])) { return true; } @@ -857,10 +860,10 @@ class XnetGrpModule extends PLModule if ($res->numRows() == 0) { $x = get_not_registered_user($login); if (!$x) { - $page->trig("Le login $login ne correspond à aucun X"); + $page->trig("Le login $login ne correspond à aucun X."); return false; } else if (count($x) > 1) { - $page->trig("Le login $login correspond a plusieurs camarades"); + $page->trig("Le login $login correspond a plusieurs camarades."); return false; } $uid = $x[0]['user_id']; @@ -895,20 +898,23 @@ class XnetGrpModule extends PLModule // Update subscription to aliases if ($email != $user['email']) { XDB::execute("UPDATE IGNORE virtual_redirect AS vr - INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', 2) = {?}) + INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', -1) = {?}) SET vr.redirect = {?} WHERE vr.redirect = {?}", $globals->asso('mail_domain'), $email, $user['email']); XDB::execute("DELETE vr.* FROM virtual_redirect AS vr - INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', 2) = {?}) + INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', -1) = {?}) WHERE vr.redirect = {?}", $globals->asso('mail_domain'), $user['email']); foreach (Env::v('ml1', array()) as $ml => $state) { $mmlist->replace_email($ml, $user['email'], $email); } } - return $login; + if ($sub) { + return $login; + } + return $user['email']; } function handler_admin_member(&$page, $user) @@ -959,7 +965,7 @@ class XnetGrpModule extends PLModule $perms ? 'admin' : 'membre', $user['uid'], $globals->asso('id')); $user['perms'] = $perms; - $page->trig('permissions modifiées'); + $page->trig('Permissions modifiées !'); } // Update ML subscriptions @@ -968,7 +974,7 @@ class XnetGrpModule extends PLModule if ($ask == $state) { if ($state && $email_changed) { $mmlist->replace_email($ml, $from_email, $user['email2']); - $page->trig("L'abonnement de {$user['prenom']} {$user['nom']} à $ml@ a été mis à jour"); + $page->trig("L'abonnement de {$user['prenom']} {$user['nom']} à $ml@ a été mis à jour."); } continue; } @@ -978,14 +984,14 @@ class XnetGrpModule extends PLModule ."cours sur $ml@ !!!"); } elseif ($ask) { $mmlist->mass_subscribe($ml, Array($user['email2'])); - $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml@"); + $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml@."); } else { if ($email_changed) { $mmlist->mass_unsubscribe($ml, Array($from_email)); } else { $mmlist->mass_unsubscribe($ml, Array($user['email2'])); } - $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml@"); + $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml@."); } } @@ -997,28 +1003,29 @@ class XnetGrpModule extends PLModule XDB::query("INSERT INTO virtual_redirect (vid,redirect) SELECT vid,{?} FROM virtual WHERE alias={?}", $user['email'], $ml); - $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml"); + $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml."); } else { XDB::query("DELETE FROM virtual_redirect USING virtual_redirect INNER JOIN virtual USING(vid) WHERE redirect={?} AND alias={?}", $user['email'], $ml); - $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml"); + $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml."); } } } $page->assign('user', $user); + echo $user['email2']; $listes = $mmlist->get_lists($user['email2']); $page->assign('listes', $listes); $res = XDB::query( 'SELECT alias, redirect IS NOT NULL as sub FROM virtual AS v - LEFT JOIN virtual_redirect AS vr ON(v.vid=vr.vid AND redirect={?}) + LEFT JOIN virtual_redirect AS vr ON(v.vid=vr.vid AND (redirect = {?} OR redirect = {?})) WHERE alias LIKE {?} AND type="user"', - $user['email'], '%@'.$globals->asso('mail_domain')); + $user['email'], $user['email2'], '%@'.$globals->asso('mail_domain')); $page->assign('alias', $res->fetchAllAssoc()); } @@ -1030,7 +1037,8 @@ class XnetGrpModule extends PLModule if ($uid) { $rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.contacts, a.create_date, - IF(u2.nom_usage != '', u2.nom_usage, u2.nom) AS nom, u2.prenom, u2.promo + IF(u2.nom_usage != '', u2.nom_usage, u2.nom) AS nom, u2.prenom, u2.promo, + FIND_IN_SET('photo', a.flags) AS photo FROM auth_user_md5 AS u INNER JOIN groupex.announces AS a ON ( (a.promo_min = 0 OR a.promo_min <= u.promo) AND (a.promo_max = 0 OR a.promo_max <= u.promo)) @@ -1130,12 +1138,12 @@ class XnetGrpModule extends PLModule ($art['promo_min'] != 0 && ($art['promo_min'] <= 1900 || $art['promo_min'] >= 2020)) || ($art['promo_max'] != 0 && ($art['promo_max'] <= 1900 || $art['promo_max'] >= 2020)))) { - $page->trig("L'intervalle de promotions est invalide"); + $page->trig("L'intervalle de promotions est invalide."); Post::kill('valid'); } if (!trim($art['titre']) || !trim($art['texte'])) { - $page->trig("L'article doit avoir un titre et un contenu"); + $page->trig("L'article doit avoir un titre et un contenu."); Post::kill('valid'); } @@ -1194,7 +1202,7 @@ class XnetGrpModule extends PLModule $art['promo_min'], $art['promo_max'], $art['peremption'], "", S::v('uid'), $upload); $article->submit(); - $page->trig("L'affichage sur la page d'accueil de Polytechnique.org est en attente de validation"); + $page->trig("L'affichage sur la page d'accueil de Polytechnique.org est en attente de validation."); } else if ($upload && $upload->exists()) { $upload->rm(); } @@ -1203,7 +1211,7 @@ class XnetGrpModule extends PLModule $article = new NLReq(S::v('uid'), $globals->asso('nom') . " : " .$art['titre'], $art['texte'], $art['contact_html']); $article->submit(); - $page->trig("La parution dans la Lettre Mensuelle est en attente de validation"); + $page->trig("La parution dans la Lettre Mensuelle est en attente de validation."); } } else { XDB::query("UPDATE groupex.announces @@ -1239,7 +1247,7 @@ class XnetGrpModule extends PLModule $art = $res->fetchOneAssoc(); $art['contact_html'] = $art['contacts']; } else { - $page->kill("Aucun article correspond à l'identifiant indiqué"); + $page->kill("Aucun article correspond à l'identifiant indiqué."); } }