Commit | Line | Data |
---|---|---|
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 | ||
24 | class 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…)"; |
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 | ?> |