From fdf0200a737c98df59902fd7d377de693fcd3e68 Mon Sep 17 00:00:00 2001
From: x2000habouzit
Date: Fri, 14 Jul 2006 21:01:43 +0000
Subject: [PATCH] migrate inscrire.php
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@488 839d8a87-29fc-0310-9880-83ba4fa771e5
---
htdocs.net/groupe/inscrire.php | 109 -----------------------------
modules/xnetgrp.php | 140 +++++++++++++++++++++++++++++++++++--
templates/xnet/groupe/inscrire.tpl | 9 ++-
3 files changed, 138 insertions(+), 120 deletions(-)
delete mode 100644 htdocs.net/groupe/inscrire.php
diff --git a/htdocs.net/groupe/inscrire.php b/htdocs.net/groupe/inscrire.php
deleted file mode 100644
index abd5294..0000000
--- a/htdocs.net/groupe/inscrire.php
+++ /dev/null
@@ -1,109 +0,0 @@
-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();
-
-?>
diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php
index 8fc8628..9e9ddb3 100644
--- a/modules/xnetgrp.php
+++ b/modules/xnetgrp.php
@@ -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;
diff --git a/templates/xnet/groupe/inscrire.tpl b/templates/xnet/groupe/inscrire.tpl
index 45a31af..414d329 100644
--- a/templates/xnet/groupe/inscrire.tpl
+++ b/templates/xnet/groupe/inscrire.tpl
@@ -22,14 +22,13 @@
Demande d'inscription à {$asso.nom}
-{if $smarty.request.u && $admin && $show_form}
+{if $u && $admin && $show_form}
Demande de la part de : {$prenom} {$nom} (X{$promo})
- Voir sa fiche
+ Voir sa fiche
-
-