Fix an error in error_handler making debug a bit harder
[platal.git] / modules / xnetgrp.php
index 114b220..db37f2a 100644 (file)
@@ -54,12 +54,12 @@ function get_infos($email)
                          u.prenom, b.alias,
                          CONCAT(b.alias, '@m4x.org') AS email,
                          CONCAT(b.alias, '@polytechnique.org') AS email2,
-                         m.perms='admin' AS perms, m.origine,
+                         m.perms = 'admin' AS perms, m.origine,
                          FIND_IN_SET('femme', u.flags) AS sexe
                    FROM  auth_user_md5   AS u
              INNER JOIN  aliases         AS a ON ( u.user_id = a.id AND a.type != 'homonyme' )
              INNER JOIN  aliases         AS b ON ( u.user_id = b.id AND b.type = 'a_vie' )
-             INNER JOIN  groupex.membres AS m ON ( m.uid = u.user_id AND asso_id={?})
+              LEFT JOIN  groupex.membres AS m ON ( m.uid = u.user_id AND asso_id={?})
                   WHERE  a.alias = {?} AND u.user_id < 50000", $globals->asso('id'), $mbox);
         return $res->fetchOneAssoc();
     }
@@ -361,7 +361,7 @@ class XnetGrpModule extends PLModule
                                      1, 1)) as letter, COUNT(*)
                            FROM  groupex.membres AS m
                       LEFT JOIN  auth_user_md5   AS u ON ( u.user_id = m.uid)
-                          WHERE  asso_id = {?} and (u.perms != \'pending\' OR u.perms IS NULL)
+                          WHERE  asso_id = {?} and (u.perms != \'pending\' OR m.email IS NOT NULL)
                        GROUP BY  letter
                        ORDER BY  letter', $globals->asso('id'));
         } else {
@@ -475,19 +475,17 @@ class XnetGrpModule extends PLModule
 
         if (!is_null($u) && may_update()) {
             $page->assign('u', $u);
-            $res = XDB::query("SELECT nom, prenom, promo, user_id
-                                           FROM auth_user_md5 AS u
-                                     INNER JOIN aliases AS al ON (al.id = u.user_id
-                                                                  AND al.type != 'liste')
-                                          WHERE al.alias = {?}", $u);
+            $res = XDB::query("SELECT  u.nom, u.prenom, u.promo, u.user_id, FIND_IN_SET('femme', u.flags)
+                                 FROM  auth_user_md5 AS u
+                           INNER JOIN  aliases AS al ON (al.id = u.user_id AND al.type != 'liste')
+                                WHERE  al.alias = {?}", $u);
 
-            if (list($nom, $prenom, $promo, $uid) = $res->fetchOneRow()) {
+            if (list($nom, $prenom, $promo, $uid, $sexe) = $res->fetchOneRow()) {
                 $res = XDB::query("SELECT  COUNT(*)
-                                               FROM  groupex.membres AS m
-                                         INNER JOIN  aliases  AS a ON (m.uid = a.id
-                                                                       AND a.type != 'homonyme')
-                                              WHERE  a.alias = {?} AND m.asso_id = {?}",
-                                            $u, $globals->asso('id'));
+                                     FROM  groupex.membres AS m
+                               INNER JOIN  aliases  AS a ON (m.uid = a.id AND a.type != 'homonyme')
+                                    WHERE  a.alias = {?} AND m.asso_id = {?}",
+                                  $u, $globals->asso('id'));
                 $n   = $res->fetchOneCell();
                 if ($n) {
                     $page->kill("$prenom $nom est déjà membre du groupe !");
@@ -495,15 +493,15 @@ class XnetGrpModule extends PLModule
                 }
                 elseif (Env::has('accept'))
                 {
-                    XDB::execute("INSERT INTO groupex.membres
-                                            VALUES ({?}, {?}, 'membre', 'X', NULL, NULL, NULL, NULL, NULL)",
+                    XDB::execute("INSERT INTO  groupex.membres (asso_id, uid)
+                                       VALUES  ({?}, {?})",
                                             $globals->asso('id'), $uid);
                     $mailer = new PlMailer();
                     $mailer->addTo("$u@polytechnique.org");
                     $mailer->setFrom('"'.S::v('prenom').' '.S::v('nom')
                                      .'" <'.S::v('forlife').'@polytechnique.org>');
                     $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription');
-                    $message = "Cher Camarade,\n"
+                    $message = ($sexe ? 'Chère' : 'Cher') . " Camarade,\n"
                              . "\n"
                              . "  Suite à ta demande d'adhésion à ".$globals->asso('nom').",\n"
                              . "j'ai le plaisir de t'annoncer que ton inscription a été validée !\n"
@@ -512,7 +510,7 @@ class XnetGrpModule extends PLModule
                              . "{$_SESSION["prenom"]} {$_SESSION["nom"]}.";
                     $mailer->setTxtBody($message);
                     $mailer->send();
-                    $page->kill("$prenom $nom a bien été inscrit");
+                    $page->kill("$prenom $nom a bien été inscrit" . ($sexe ? 'e' : ''));
                 }
                 elseif (Env::has('refuse'))
                 {