migrate inscrire.php
authorx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 14 Jul 2006 21:01:43 +0000 (21:01 +0000)
committerx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 14 Jul 2006 21:01:43 +0000 (21:01 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@488 839d8a87-29fc-0310-9880-83ba4fa771e5

htdocs.net/groupe/inscrire.php [deleted file]
modules/xnetgrp.php
templates/xnet/groupe/inscrire.tpl

diff --git a/htdocs.net/groupe/inscrire.php b/htdocs.net/groupe/inscrire.php
deleted file mode 100644 (file)
index abd5294..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-require 'xnet.inc.php';
-
-new_page('xnet/groupe/inscrire.tpl');
-$page->doAuth(true);
-$page->useMenu();
-$page->setType($globals->asso('cat'));
-$page->assign('asso', $globals->asso());
-$page->assign('admin', may_update());
-
-if (!$globals->asso('inscriptible'))
-       $page->kill("Il n'est pas possible de s'inscire en ligne à ce groupe. Essaie de joindre le contact indiqué sur la page de présentation.");
-
-if (Env::has('u') && may_update()) {
-    $u   = Env::get('u');
-    $res = $globals->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);
-
-    if (list($nom, $prenom, $promo, $uid) = $res->fetchOneRow())
-    {
-        $res = $globals->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'));
-        $n   = $res->fetchOneCell();
-        if ($n)
-        {
-            $page->trig_run("$prenom $nom est déjà membre du groupe !");
-        }
-        elseif (Env::has('accept'))
-        {
-            $globals->xdb->execute("INSERT INTO groupex.membres VALUES ({?}, {?}, 'membre', 'X', NULL, NULL, NULL, NULL)", $globals->asso('id'), $uid);
-            require_once 'diogenes/diogenes.hermes.inc.php';
-            $mailer = new HermesMailer();
-            $mailer->addTo("$u@polytechnique.org");
-            $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom').'" <'.Session::get('forlife').'@polytechnique.org>');
-            $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription');
-            $message = "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 bien été validée !\n"
-                     . "\n"
-                     . "Bien cordialement,\n"
-                     . "{$_SESSION["prenom"]} {$_SESSION["nom"]}.";
-            $mailer->setTxtBody($message);
-            $mailer->send();
-            $page->kill("$prenom $nom a bien été inscrit");
-        }
-        elseif (Env::has('refuse'))
-        {
-            require_once 'diogenes/diogenes.hermes.inc.php';
-            $mailer = new HermesMailer();
-            $mailer->addTo("$u@polytechnique.org");
-            $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom').'" <'.Session::get('forlife').'@polytechnique.org>');
-            $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription annulée');
-            $mailer->setTxtBody(Env::get('motif'));
-            $mailer->send();
-            $page->kill("la demande $prenom $nom a bien été refusée");
-        }
-        else
-        {
-            $page->assign('show_form', true);
-            $page->gassign('prenom');
-            $page->gassign('nom');
-            $page->gassign('promo');
-            $page->gassign('uid');
-        }
-    }
-    else
-    {
-        $page->kill("utilisateur invalide");
-    }
-} elseif (is_member()) {
-    $page->kill("tu es déjà membre !");
-} elseif (Post::has('inscrire')) {
-
-    $res = $globals->xdb->query('SELECT  IF(m.email IS NULL, CONCAT(al.alias,"@polytechnique.org"), m.email)
-                                   FROM  groupex.membres AS m
-                             INNER JOIN  aliases         AS al ON (al.type = "a_vie" AND al.id = m.uid)
-                                  WHERE  perms="admin" AND m.asso_id = {?}', $globals->asso('id'));
-    $emails = $res->fetchColumn();
-    $to     = implode(',', $emails);
-
-    $append = "\n"
-            . "-- \n"
-            . "Ce message a été envoyé suite à la demande d'inscription de\n"
-            . Session::get('prenom').' '.Session::get('nom').' (X'.Session::get('promo').")\n"
-            . "Via le site www.polytechnique.net. Tu peux choisir de valider ou\n"
-            . "de refuser sa demande d'inscription depuis la page :\n"
-            . "http://www.polytechnique.net/".$globals->asso("diminutif")."/inscrire.php?u=".Session::get('forlife')."\n"
-            . "\n"
-            . "En cas de problème, contacter l'équipe de Polytechnique.org\n"
-            . "à l'adresse : support@polytechnique.org\n";
-    
-    if (!$to) {
-       $to = $globals->asso("mail").", support@polytechnique.org";
-       $append = "\n-- \nLe groupe ".$globals->asso("nom")." n'a pas d'administrateur, l'équipe de Polytechnique.org a été prévenue et va rapidement résoudre ce problème.\n";
-    }
-    
-    require_once 'diogenes/diogenes.hermes.inc.php';
-    $mailer = new HermesMailer();
-    $mailer->addTo($to);
-    $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom').'" <'.Session::get('forlife').'@polytechnique.org>');
-    $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription');
-    $mailer->setTxtBody(Post::get('message').$append);
-    $mailer->send();
-}
-
-
-$page->run();
-
-?>
index 8fc8628..9e9ddb3 100644 (file)
@@ -24,12 +24,13 @@ class XnetGrpModule extends PLModule
     function handlers()
     {
         return array(
-            'grp'            => $this->make_hook('index',    AUTH_PUBLIC),
-            'grp/asso.php'   => $this->make_hook('index',    AUTH_PUBLIC),
-            'grp/logo'       => $this->make_hook('logo',     AUTH_PUBLIC),
-            'grp/edit'       => $this->make_hook('edit',     AUTH_MDP),
-            'grp/mail'       => $this->make_hook('mail',     AUTH_MDP),
-            'grp/annuaire'   => $this->make_hook('annuaire', AUTH_MDP),
+            'grp'            => $this->make_hook('index',     AUTH_PUBLIC),
+            'grp/asso.php'   => $this->make_hook('index',     AUTH_PUBLIC),
+            'grp/logo'       => $this->make_hook('logo',      AUTH_PUBLIC),
+            'grp/edit'       => $this->make_hook('edit',      AUTH_MDP),
+            'grp/mail'       => $this->make_hook('mail',      AUTH_MDP),
+            'grp/annuaire'   => $this->make_hook('annuaire',  AUTH_MDP),
+            'grp/subscribe'  => $this->make_hook('subscribe', AUTH_MDP),
 
             'grp/admin/annuaire'
                  => $this->make_hook('admin_annuaire', AUTH_MDP),
@@ -272,6 +273,133 @@ class XnetGrpModule extends PLModule
         $page->assign('ann', $ann);
     }
 
+    function handler_subscribe(&$page, $u = null)
+    {
+        $page->changeTpl('xnet/groupe/inscrire.tpl');
+
+        $page->useMenu();
+        $page->setType($globals->asso('cat'));
+        $page->assign('asso', $globals->asso());
+        $page->assign('admin', may_update());
+
+        if (!$globals->asso('inscriptible'))
+                $page->kill("Il n'est pas possible de s'inscire en ligne à ce "
+                            ."groupe. Essaie de joindre le contact indiqué "
+                            ."sur la page de présentation.");
+
+        if (!is_null($u) && may_update()) {
+            $page->assign('u', $u);
+            $res = $globals->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);
+
+            if (list($nom, $prenom, $promo, $uid) = $res->fetchOneRow()) {
+                $res = $globals->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'));
+                $n   = $res->fetchOneCell();
+                if ($n) {
+                    $page->trig_run("$prenom $nom est déjà membre du groupe !");
+                }
+                elseif (Env::has('accept'))
+                {
+                    $globals->xdb->execute("INSERT INTO groupex.membres
+                                            VALUES ({?}, {?}, 'membre', 'X', NULL, NULL, NULL, NULL)",
+                                            $globals->asso('id'), $uid);
+                    require_once 'diogenes/diogenes.hermes.inc.php';
+                    $mailer = new HermesMailer();
+                    $mailer->addTo("$u@polytechnique.org");
+                    $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom')
+                                     .'" <'.Session::get('forlife').'@polytechnique.org>');
+                    $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription');
+                    $message = "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"
+                             . "\n"
+                             . "Bien cordialement,\n"
+                             . "{$_SESSION["prenom"]} {$_SESSION["nom"]}.";
+                    $mailer->setTxtBody($message);
+                    $mailer->send();
+                    $page->kill("$prenom $nom a bien été inscrit");
+                }
+                elseif (Env::has('refuse'))
+                {
+                    require_once 'diogenes/diogenes.hermes.inc.php';
+                    $mailer = new HermesMailer();
+                    $mailer->addTo("$u@polytechnique.org");
+                    $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom')
+                                     .'" <'.Session::get('forlife').'@polytechnique.org>');
+                    $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription annulée');
+                    $mailer->setTxtBody(Env::get('motif'));
+                    $mailer->send();
+                    $page->kill("la demande $prenom $nom a bien été refusée");
+                } else {
+                    $page->assign('show_form', true);
+                    $page->assign('prenom', $prenom);
+                    $page->assign('nom', $nom);
+                    $page->assign('promo', $promo);
+                    $page->assign('uid', $uid);
+                }
+                return;
+            }
+            return PL_NOT_FOUND;
+        }
+
+        if (is_member()) {
+            $page->kill("tu es déjà membre !");
+            return;
+        }
+
+        if (Post::has('inscrire')) {
+            $res = $globals->xdb->query('SELECT  IF(m.email IS NULL,
+                                                    CONCAT(al.alias,"@polytechnique.org"),
+                                                    m.email)
+                                           FROM  groupex.membres AS m
+                                     INNER JOIN  aliases         AS al ON (al.type = "a_vie"
+                                                                           AND al.id = m.uid)
+                                          WHERE  perms="admin" AND m.asso_id = {?}',
+                                         $globals->asso('id'));
+            $emails = $res->fetchColumn();
+            $to     = implode(',', $emails);
+
+            $append = "\n"
+                    . "-- \n"
+                    . "Ce message a été envoyé suite à la demande d'inscription de\n"
+                    . Session::get('prenom').' '.Session::get('nom').' (X'.Session::get('promo').")\n"
+                    . "Via le site www.polytechnique.net. Tu peux choisir de valider ou\n"
+                    . "de refuser sa demande d'inscription depuis la page :\n"
+                    .
+                    "http://www.polytechnique.net/".$globals->asso("diminutif")."/subscribe/"
+                        .Session::get('forlife')."\n"
+                    . "\n"
+                    . "En cas de problème, contacter l'équipe de Polytechnique.org\n"
+                    . "à l'adresse : support@polytechnique.org\n";
+
+            if (!$to) {
+                $to = $globals->asso("mail").", support@polytechnique.org";
+                $append = "\n-- \nLe groupe ".$globals->asso("nom")
+                        ." n'a pas d'administrateur, l'équipe de"
+                        ." Polytechnique.org a été prévenue et va rapidement"
+                        ." résoudre ce problème.\n";
+            }
+
+            require_once 'diogenes/diogenes.hermes.inc.php';
+            $mailer = new HermesMailer();
+            $mailer->addTo($to);
+            $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom')
+                             .'" <'.Session::get('forlife').'@polytechnique.org>');
+            $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription');
+            $mailer->setTxtBody(Post::get('message').$append);
+            $mailer->send();
+        }
+    }
+
     function handler_admin_annuaire(&$page)
     {
         global $globals;
index 45a31af..414d329 100644 (file)
 
 <h1>Demande d'inscription à {$asso.nom}</h1>
 
-{if $smarty.request.u && $admin && $show_form}
+{if $u && $admin && $show_form}
 
 <h2>
   Demande de la part de : {$prenom} {$nom} (X{$promo})
-  <a href="https://www.polytechnique.org/profile/{$smarty.request.u}">Voir sa fiche</a>
+  <a href="https://www.polytechnique.org/profile/{$u}">Voir sa fiche</a>
 </h2>
-<form action="{$smarty.server.PHP_SELF}" method="post">
-  <input type="hidden" name="u" value="{$smarty.request.u}" />
+<form action="{rel}/{$platal->ns}subscribe/{$u}" method="post">
   <input type="submit" value="Accepter" name="accept" />
   <br />
   ou bien
@@ -53,7 +52,7 @@ Pour t'inscrire 
 formulaire ci-dessous. Vérifie et corrige au besoin les différents champs, puis clique sur
 [&nbsp;m'inscrire&nbsp;]
 </p>
-<form action="{$smarty.server.PHP_SELF}" method="post">
+<form action="{rel}/{$platal->ns}subscribe" method="post">
   <p class="descr">
   <strong>OUI, je souhaite être inscrit au groupe {$asso.nom}</strong>
   </p>