assign('xorg_title','Polytechnique.org - Alias melix.net'); $uid = Session::getInt('uid'); $forlife = Session::get('forlife'); $page->assign('demande', AliasReq::get_request($uid)); //Suppression d'un alias if (Env::get('suppr', false)) { $globals->xdb->execute( 'DELETE virtual, virtual_redirect FROM virtual INNER JOIN virtual_redirect USING (vid) WHERE alias LIKE {?} AND (redirect = {?} OR redirect = {?})', Env::get('suppr'), $forlife.'@'.$globals->mail->domain, $forlife.'@'.$globals->mail->domain2); } //Récupération des alias éventuellement existants $res = $globals->xdb->query( "SELECT alias, emails_alias_pub FROM auth_user_quick, virtual INNER JOIN virtual_redirect USING(vid) WHERE ( redirect={?} OR redirect= {?} ) AND alias LIKE '%@{$globals->mail->alias_dom}' AND user_id = {?}", $forlife.'@'.$globals->mail->domain, $forlife.'@'.$globals->mail->domain2, Session::getInt('uid')); list($alias, $visibility) = $res->fetchOneRow(); $page->assign('actuel', $alias); //Si l'utilisateur vient de faire une damande if (Env::has('alias') and Env::has('raison')) { $alias = Env::get('alias'); $raison = Env::get('raison'); $public = (Env::get('public', 'off') == 'on')?"public":"private"; $page->assign('r_alias', $alias); $page->assign('r_raison', $raison); if ($public == 'public') { $page->assign('r_public', true); } //Quelques vérifications sur l'alias (caractères spéciaux) if (!preg_match( "/^[a-zA-Z0-9\-.]{3,20}$/", $alias)) { $page->trig("L'adresse demandée n'est pas valide. Vérifie qu'elle comporte entre 3 et 20 caractères et qu'elle ne contient que des lettres non accentuées, des chiffres ou les caractères - et ."); $page->run('error'); } else { //vérifier que l'alias n'est pas déja pris $res = $globals->xdb->query('SELECT COUNT(*) FROM virtual WHERE alias={?}', $alias.'@'.$globals->mail->alias_dom); if ($res->fetchOneCell() > 0) { $page->trig("L'alias $alias@{$globals->mail->alias_dom} a déja été attribué. Tu ne peux donc pas l'obtenir."); $page->run('error'); } //vérifier que l'alias n'est pas déja en demande $it = new ValidateIterator (); while($req = $it->next()) { if ($req->type == "alias" and $req->alias == $alias) { $page->trig("L'alias $alias@{$globals->mail->alias_dom} a déja été demandé. Tu ne peux donc pas l'obtenir pour l'instant."); $page->run('error'); } } //Insertion de la demande dans la base, écrase les requêtes précédente $myalias = new AliasReq($uid, $alias, $raison, $public); $myalias->submit(); $page->assign('success',$alias); $page->run('succes'); } } // montrer son alias elseif ((Env::get('visible') == 'public') && ($visibility != 'public')) { $globals->xdb->execute("UPDATE auth_user_quick SET emails_alias_pub = 'public' WHERE user_id = {?}", Session::getInt('uid')); $visibility = 'public'; } // cacher son alias elseif ((Env::get('visible') == 'private') && ($visibility != 'private')) { $globals->xdb->execute("UPDATE auth_user_quick SET emails_alias_pub = 'private' WHERE user_id = {?}", Session::getInt('uid')); $visibility = 'private'; } if ($visibility == 'public') { $page->assign('mail_public', true); } $page->run(); ?>