X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Faliases.inc.php;h=461b96991cc8a9aeeed85babbba83839c3b548f5;hb=2553b7686e0678b8e27858a7c377e73ecb410aec;hp=9cd0b0b543b79259dfe9950dbf1cd0bf5364a949;hpb=08cce2ff528b38bde27cdec6d6bc28d6af4a42d4;p=platal.git diff --git a/include/validations/aliases.inc.php b/include/validations/aliases.inc.php index 9cd0b0b..461b969 100644 --- a/include/validations/aliases.inc.php +++ b/include/validations/aliases.inc.php @@ -1,6 +1,6 @@ Validate($_uid, true, 'alias', $_stamp); + parent::__construct($_user, true, 'alias', $_stamp); $this->alias = $_alias.'@'.$globals->mail->alias_dom; $this->raison = $_raison; $this->public = $_public; @@ -51,30 +51,37 @@ class AliasReq extends Validate 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}') - WHERE vr.redirect={?} OR vr.redirect={?}", - "{$this->forlife}@{$globals->mail->domain}", "{$this->forlife}@{$globals->mail->domain2}"); + WHERE vr.redirect = {?} OR vr.redirect = {?}", + $this->user->forlifeEmail(), + // TODO: remove this über-ugly hack. The issue is that you need + // to remove all @m4x.org addresses in virtual_redirect first. + $this->user->login() . '@' . $globals->mail->domain2); $this->old = $res->fetchOneCell(); - if (empty($this->old)) { unset($this->old); } + if (empty($this->old)) { + unset($this->old); + } } // }}} // {{{ 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}"; } @@ -82,31 +89,47 @@ class AliasReq extends Validate // }}} // {{{ 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; - - 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->user->id()); if ($this->old) { - return 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 { - XDB::execute('INSERT INTO virtual SET alias={?},type="user"', $this->alias); - $vid = mysql_insert_id(); - $dom = $globals->mail->shorter_domain(); - return 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(); + return XDB::query("INSERT INTO virtual_redirect (vid,redirect) VALUES ({?}, {?})", + $vid, $this->user->forlifeEmail()); } } @@ -115,5 +138,5 @@ class AliasReq extends Validate // }}} -// 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: ?>