2 /***************************************************************************
3 * Copyright (C) 2003-2010 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
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. *
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. *
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 *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
22 // class AliasReq {{{1
23 class AliasReq
extends Validate
28 public $unique = true
;
31 public $public = 'private';
33 public $rules = "Interdire ce qui peut nous servir (virus@, postmaster@…),
34 les alias vulgaires, et les prenom.nom (sauf si c'est pour l'utilisateur prenom.nom).
35 Pas de contrainte pour les tirets ou les points, en revanche le souligné (_) est interdit.";
38 public function __construct(User
&$_user, $_alias, $_raison, $_public, $_stamp=0)
41 parent
::__construct($_user, true
, 'alias', $_stamp);
42 $this->alias
= $_alias.'@'.$globals->mail
->alias_dom
;
43 $this->raison
= $_raison;
44 $this->public = $_public;
45 $this->old
= $user->emailAlias();
46 if (empty($this->old
)) {
51 // function get_request() {{{2
52 static public function get_request($uid)
54 return parent
::get_typed_request($uid, 'alias');
57 // function formu() {{{2
58 public function formu()
60 return 'include/form.valid.aliases.tpl';
63 // function _mail_subj {{{2
64 protected function _mail_subj()
66 return "[Polytechnique.org/MELIX] Demande de l'alias {$this->alias}";
69 // function _mail_body {{{2
70 protected function _mail_body($isok)
73 return " L'adresse email {$this->alias} que tu avais demandée vient d'être créée, tu peux désormais l'utiliser à ta convenance."
74 . ($this->public == 'public' ?
' À ta demande, cette adresse apparaît maintenant sur ta fiche.' : '');
76 return " La demande que tu avais faite pour l'alias {$this->alias} a été refusée.";
80 // function commit() {{{2
81 public function commit()
83 if ($this->user
->hasProfile()) {
84 XDB
::execute('UPDATE profiles
87 $this->public, $this->user
->profile()->id());
91 return XDB
::execute('UPDATE virtual
94 $this->alias
, $this->old
);
96 XDB
::execute('INSERT INTO virtual
97 SET alias = {?}, type=\'user\'',
99 $vid = XDB
::insertId();
100 return XDB
::execute('INSERT INTO virtual_redirect (vid, redirect)
102 $vid, $this->user
->forlifeEmail());
107 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: