<?php
/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
+ * Copyright (C) 2003-2008 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
{
// {{{ properties
- var $alias;
- var $raison;
- var $unique = true;
+ public $alias;
+ public $raison;
+ public $unique = true;
- var $old='';
- var $public='private';
-
- var $rules = "Interdire ce qui peut nous servir (virus@, postmaster@, ...),
+ public $old='';
+ public $public='private';
+
+ public $rules = "Interdire ce qui peut nous servir (virus@, postmaster@, ...),
les alias vulgaires, et les prenom.nom (sauf si c'est pour l'utilisateur prenom.nom).
- Pas de contrainte pour les tirets ou les points, en revanche le souligné (_) est interdit";
+ Pas de contrainte pour les tirets ou les points, en revanche le souligné (_) est interdit";
// }}}
// {{{ constructor
- function AliasReq ($_uid, $_alias, $_raison, $_public, $_stamp=0)
+ public function __construct($_uid, $_alias, $_raison, $_public, $_stamp=0)
{
global $globals;
- $this->Validate($_uid, true, 'alias', $_stamp);
+ parent::__construct($_uid, true, 'alias', $_stamp);
$this->alias = $_alias.'@'.$globals->mail->alias_dom;
$this->raison = $_raison;
$this->public = $_public;
- $res = $globals->xdb->query("
+ $res = XDB::query("
SELECT v.alias
FROM virtual_redirect AS vr
INNER JOIN virtual AS v ON (v.vid=vr.vid AND v.alias LIKE '%@{$globals->mail->alias_dom}')
// }}}
// {{{ function get_request()
- function get_request($uid)
+ static public function get_request($uid)
{
- return parent::get_request($uid,'alias');
+ return parent::get_typed_request($uid,'alias');
}
// }}}
// {{{ function formu()
- function formu()
- { return 'include/form.valid.aliases.tpl'; }
+ public function formu()
+ {
+ return 'include/form.valid.aliases.tpl';
+ }
// }}}
// {{{ function _mail_subj
- function _mail_subj()
+ protected function _mail_subj()
{
return "[Polytechnique.org/MELIX] Demande de l'alias {$this->alias}";
}
// }}}
// {{{ function _mail_body
- function _mail_body($isok)
+ protected function _mail_body($isok)
{
if ($isok) {
- return " L'adresse mail {$this->alias} que tu avais demandée vient d'être créée, tu peux désormais l'utiliser à ta convenance.".(($this->public == 'public')?" A ta demande, cette adresse apparaît maintenant sur ta fiche.":"");
+ return " L'adresse email {$this->alias} que tu avais demandée vient d'être créée, tu peux désormais l'utiliser à ta convenance.".(($this->public == 'public')?" A ta demande, cette adresse apparaît maintenant sur ta fiche.":"");
} else {
- return " La demande que tu avais faite pour l'alias {$this->alias} a été refusée.";
+ return " La demande que tu avais faite pour l'alias {$this->alias} a été refusée.";
}
}
// }}}
- // {{{ function commit()
+ // {{{ function shorter_domain
- function commit ()
+ private function shorter_domain()
{
global $globals;
-
- $globals->xdb->execute("UPDATE auth_user_quick SET emails_alias_pub = {?} WHERE user_id = {?}", $this->public, $this->uid);
+
+ $mail = $globals->mail;
+
+ if (empty($mail->domain2) || strlen($mail->domain2) > strlen($mail->domain)) {
+ return $mail->domain;
+ } else {
+ return $mail->domain2;
+ }
+ }
+
+ // }}}
+ // {{{ function commit()
+
+ public function commit ()
+ {
+ XDB::execute("UPDATE auth_user_quick SET emails_alias_pub = {?} WHERE user_id = {?}",
+ $this->public, $this->uid);
if ($this->old) {
- return $globals->xdb->execute('UPDATE virtual SET alias={?} WHERE alias={?}', $this->alias, $this->old);
+ return XDB::execute('UPDATE virtual SET alias={?} WHERE alias={?}',
+ $this->alias, $this->old);
} else {
- $globals->xdb->execute('INSERT INTO virtual SET alias={?},type="user"', $this->alias);
- $vid = mysql_insert_id();
- $dom = $globals->mail->shorter_domain();
- return $globals->xdb->query('INSERT INTO virtual_redirect (vid,redirect) VALUES ({?}, {?})', $vid, $this->forlife.'@'.$dom);
+ XDB::execute('INSERT INTO virtual SET alias={?},type="user"', $this->alias);
+ $vid = XDB::insertId();
+ $dom = $this->shorter_domain();
+ return XDB::query('INSERT INTO virtual_redirect (vid,redirect) VALUES ({?}, {?})',
+ $vid, $this->forlife.'@'.$dom);
}
}
// }}}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>