Moving to GitHub.
[platal.git] / include / validations / listes.inc.php
CommitLineData
0337d704 1<?php
2/***************************************************************************
c441aabe 3 * Copyright (C) 2003-2014 Polytechnique.org *
0337d704 4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22// {{{ class ListeReq
23
24class ListeReq extends Validate
25{
26 // {{{ properties
eaf30d86 27
612a2d8a 28 public $liste;
29 public $desc;
59887c4a
SJ
30 public $asso;
31 public $domain;
0337d704 32
612a2d8a 33 public $advertise;
34 public $modlevel;
35 public $inslevel;
0337d704 36
612a2d8a 37 public $owners;
38 public $members;
0337d704 39
612a2d8a 40 public $rules = "Refuser les listes de binets si elles ne sont pas datées (oui : apv2002@, non : apv@).
6e828e47 41 Refuser également des listes qui pourraient nous servir (admin, postmaster&hellip;)";
0337d704 42 // }}}
43 // {{{ constructor
eaf30d86 44
26ba053e 45 public function __construct(User $_user, $_asso, $_liste, $_domain, $_desc, $_advertise,
85ddf64f 46 $_modlevel, $_inslevel, $_owners, $_members, $_stamp = 0)
0337d704 47 {
5daf68f6 48 parent::__construct($_user, false, 'liste', $_stamp);
eaf30d86 49
59887c4a 50 $this->asso = $_asso;
0337d704 51 $this->liste = $_liste;
59887c4a 52 $this->domain = $_domain;
0337d704 53 $this->desc = $_desc;
54 $this->advertise = $_advertise;
55 $this->modlevel = $_modlevel;
56 $this->inslevel = $_inslevel;
57 $this->owners = $_owners;
58 $this->members = $_members;
59 }
60
61 // }}}
62 // {{{ function formu()
63
612a2d8a 64 public function formu()
65 {
66 return 'include/form.valid.listes.tpl';
67 }
0337d704 68
69 // }}}
e2a78862 70 // {{{ function editor()
71
612a2d8a 72 public function editor()
e2a78862 73 {
74 return 'include/form.valid.edit-listes.tpl';
75 }
76
77 // }}}
78 // {{{ function handle_editor()
79
612a2d8a 80 protected function handle_editor()
e2a78862 81 {
032b244e
SJ
82 global $globals;
83
e2a78862 84 if (Env::has('listname')) {
6373bfc4 85 $this->liste = Post::t('listname');
e2a78862 86 }
59887c4a 87 if (Env::has('domainname')) {
6373bfc4 88 $this->domain = Post::t('domainname');
59887c4a
SJ
89 }
90 if (Env::has('assotype')) {
6373bfc4 91 $this->asso = Post::t('assotype');
59887c4a
SJ
92 }
93 if (!$this->asso) {
032b244e 94 $this->domain = $globals->mail->domain;
59887c4a 95 }
cc7d3217
SJ
96 foreach ($this->owners as $key => &$email) {
97 $email = Post::t('owners_' . $key);
98 }
99 foreach ($this->members as $key => &$email) {
100 $email = Post::t('members_' . $key);
101 }
e2a78862 102 return true;
103 }
104
105 // }}}
0337d704 106 // {{{ function _mail_subj
107
612a2d8a 108 protected function _mail_subj()
0337d704 109 {
655f5314 110 return "[Polytechnique.org/LISTES] Demande de la liste {$this->liste}@{$this->domain}";
0337d704 111 }
112
113 // }}}
114 // {{{ function _mail_body
115
612a2d8a 116 protected function _mail_body($isok)
0337d704 117 {
118 if ($isok) {
de1b96b6 119 return " Suite à ta demande de création de liste de diffusion, nous avons créé l'adresse {$this->liste}@{$this->domain}, qui est maintenant à ta disposition.";
0337d704 120 } else {
655f5314 121 return " La demande que tu avais faite pour la liste de diffusion {$this->liste}@{$this->domain} a été refusée.";
0337d704 122 }
123 }
124
125 // }}}
126 // {{{ function commit()
9bb8bf21 127
612a2d8a 128 public function commit()
0337d704 129 {
85ddf64f 130 require_once 'emails.inc.php';
59887c4a 131
85ddf64f 132 if ($this->asso == 'alias') {
59887c4a 133 foreach ($this->members as $member) {
7e82b545 134 add_to_list_alias($member, $this->liste, $this->domain);
59887c4a 135 }
85ddf64f 136 } else {
0e429a9e
SJ
137 $members = User::getBulkForlifeEmails($this->members, true,
138 array('ListsModule', 'no_login_callback'));
139 $owners = User::getBulkForlifeEmails($this->owners, true,
140 array('ListsModule', 'no_login_callback'));
03558f19
RB
141
142 // Make sure we send a list (array_values) of unique (array_unique)
143 // emails.
144 $owners = array_values(array_unique($owners));
145 $members = array_values(array_unique($members));
92ac93ec 146
58a2be6a 147 $success = MailingList::create($this->liste, $this->domain, S::user(),
73f39c05
RB
148 $this->desc, $this->advertise,
149 $this->modlevel, $this->inslevel,
150 $owners, $members);
151
85ddf64f
SJ
152 if ($success) {
153 create_list($this->liste, $this->domain);
59887c4a 154 }
85ddf64f 155 return $success;
0337d704 156 }
0337d704 157 }
158
159 // }}}
160}
161
162// }}}
163
448c8cdc 164// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
0337d704 165?>