les groupes peuvent empecher les inscriptions, evitant ainsi les demandes d'inscripti...
[platal.git] / htdocs.net / groupe / inscrire.php
1 <?php
2 require 'xnet.inc.php';
3
4 new_page('xnet/groupe/inscrire.tpl', AUTH_MDP);
5 $page->useMenu();
6 $page->setType($globals->asso('cat'));
7 $page->assign('asso', $globals->asso());
8 $page->assign('admin', may_update());
9
10 if (!$globals->asso('inscriptible'))
11 $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.");
12
13 if (Env::has('u') && may_update()) {
14 $u = Env::get('u');
15 $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);
16
17 if (list($nom, $prenom, $promo, $uid) = $res->fetchOneRow())
18 {
19 $res = $globals->xdb->query("SELECT count(*) FROM groupex.membres AS m
20 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'));
21 $n = $res->fetchOneCell();
22 if ($n)
23 {
24 $page->trig_run("$prenom $nom est déjà membre du groupe !");
25 }
26 elseif (Env::has('accept'))
27 {
28 $globals->xdb->execute("INSERT INTO groupex.membres VALUES ({?}, {?}, 'membre', 'X', NULL, NULL, NULL, NULL)", $globals->asso('id'), $uid);
29 require_once 'diogenes/diogenes.hermes.inc.php';
30 $mailer = new HermesMailer();
31 $mailer->addTo("$u@polytechnique.org");
32 $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom').'" <'.Session::get('forlife').'@polytechnique.org>');
33 $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription');
34 $message = "Cher Camarade,\n"
35 . "\n"
36 . " Suite à ta demande d'adhésion à ".$globals->asso('nom').",\n"
37 . "j'ai le plaisir de t'annoncer que ton inscription a bien été validée !\n"
38 . "\n"
39 . "Bien cordialement,\n"
40 . "{$_SESSION["prenom"]} {$_SESSION["nom"]}.";
41 $mailer->setTxtBody($message);
42 $mailer->send();
43 $page->kill("$prenom $nom a bien été inscrit");
44 }
45 elseif (Env::has('refuse'))
46 {
47 require_once 'diogenes/diogenes.hermes.inc.php';
48 $mailer = new HermesMailer();
49 $mailer->addTo("$u@polytechnique.org");
50 $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom').'" <'.Session::get('forlife').'@polytechnique.org>');
51 $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription annulée');
52 $mailer->setTxtBody(Env::get('motif'));
53 $mailer->send();
54 $page->kill("la demande $prenom $nom a bien été refusée");
55 }
56 else
57 {
58 $page->assign('show_form', true);
59 $page->gassign('prenom');
60 $page->gassign('nom');
61 $page->gassign('promo');
62 $page->gassign('uid');
63 }
64 }
65 else
66 {
67 $page->kill("utilisateur invalide");
68 }
69 } elseif (is_member()) {
70 $page->kill("tu es déjà membre !");
71 } elseif (Post::has('inscrire')) {
72
73 $res = $globals->xdb->query('SELECT IF(m.email IS NULL, CONCAT(al.alias,"@polytechnique.org"), m.email)
74 FROM groupex.membres AS m
75 INNER JOIN aliases AS al ON (al.type = "a_vie" AND al.id = m.uid)
76 WHERE perms="admin" AND m.asso_id = {?}', $globals->asso('id'));
77 $emails = $res->fetchColumn();
78 $to = implode(',', $emails);
79
80 $append = "\n"
81 . "-- \n"
82 . "Ce message a été envoyé suite à la demande d'inscription de\n"
83 . Session::get('prenom').' '.Session::get('nom').' (X'.Session::get('promo').")\n"
84 . "Via le site www.polytechnique.net. Tu peux choisir de valider ou\n"
85 . "de refuser sa demande d'inscription depuis la page :\n"
86 . "http://www.polytechnique.net/".$globals->asso("diminutif")."/inscrire.php?u=".Session::get('forlife')."\n"
87 . "\n"
88 . "En cas de problème, contacter l'équipe de Polytechnique.org\n"
89 . "à l'adresse : support@polytechnique.org\n";
90
91 if (!$to) {
92 $to = $globals->asso("mail").", support@polytechnique.org";
93 $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";
94 }
95
96 require_once 'diogenes/diogenes.hermes.inc.php';
97 $mailer = new HermesMailer();
98 $mailer->addTo($to);
99 $mailer->setFrom('"'.Session::get('prenom').' '.Session::get('nom').'" <'.Session::get('forlife').'@polytechnique.org>');
100 $mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription');
101 $mailer->setTxtBody(Post::get('message').$append);
102 $mailer->send();
103 }
104
105
106 $page->run();
107
108 ?>