From bd5e1f3db498fab68593b5163df0f0b8c3b67791 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Fri, 25 May 2007 20:39:38 +0000 Subject: [PATCH] Fix a bug in autoload Show naissance_ini if valid in user admin page Admins can set melix aliases Convert emails to aliases when adding a new alias to a user include/platal.inc.php | 2 +- include/validations/aliases.inc.php | 6 ++++-- modules/admin.php | 35 ++++++++++++++++++++++++++++++----- templates/admin/utilisateurs.tpl | 12 +++++------- 4 files changed, 40 insertions(+), 15 deletions(-) git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1836 839d8a87-29fc-0310-9880-83ba4fa771e5 --- include/platal.inc.php | 2 +- include/validations/aliases.inc.php | 2 +- modules/admin.php | 35 ++++++++++++++++++++++++++++++----- templates/admin/utilisateurs.tpl | 12 +++++------- 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/include/platal.inc.php b/include/platal.inc.php index f70a778..f72c3a8 100644 --- a/include/platal.inc.php +++ b/include/platal.inc.php @@ -45,7 +45,7 @@ function __autoload($cls) $cls = strtolower($cls); $path = dirname(dirname(__FILE__)); if (!@include "$path/classes/$cls.php") { - if (substr($cls, -1, 3) == 'req') { + if (substr($cls, -3, 3) == 'req') { @include 'validations.inc.php'; return; } diff --git a/include/validations/aliases.inc.php b/include/validations/aliases.inc.php index c89e48d..2e8c948 100644 --- a/include/validations/aliases.inc.php +++ b/include/validations/aliases.inc.php @@ -115,7 +115,7 @@ class AliasReq extends Validate public function commit () { XDB::execute("UPDATE auth_user_quick SET emails_alias_pub = {?} WHERE user_id = {?}", - $this->public, $this->uid); + $this->public, $this->uid)) { if ($this->old) { return XDB::execute('UPDATE virtual SET alias={?} WHERE alias={?}', diff --git a/modules/admin.php b/modules/admin.php index d9a7857..dbc30fc 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -462,8 +462,33 @@ class AdminModule extends PLModule } break; case "add_alias": - XDB::execute("INSERT INTO aliases (id,alias,type) VALUES ({?}, {?}, 'alias')", - $mr['user_id'], Env::v('email')); + global $globals; + $alias = trim(Env::v('email')); + if (strpos($alias, '@') !== false) { + list($alias, $domain) = explode('@', $alias); + } else { + $domain = $globals->mail->domain; + } + if (!preg_match('/[-a-z0-9\.]+/s', $alias)) { + $page->trig("'$alias' n'est pas un alias valide"); + } + if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) { + $req = new AliasReq($mr['user_id'], $alias, 'Admin request', false); + if ($req->commit()) { + $page->trig("Nouvel alias '$alias@$domain' attribué"); + } else { + $page->trig("Impossible d'ajouter l'alias '$alias@$domain', il est probablement déjà attribué"); + } + } elseif ($domain == $globals->mail->domain || $domain == $globals->mail->domain2) { + if (XDB::execute("INSERT INTO aliases (id,alias,type) VALUES ({?}, {?}, 'alias')", + $mr['user_id'], $alias)) { + $page->trig("Nouvel alias '$alias' ajouté"); + } else { + $page->trig("Impossible d'ajouter l'alias '$alias', il est probablement déjà attribué"); + } + } else { + $page->trig("Le domaine '$domain' n'est pas valide"); + } break; case "best": @@ -575,7 +600,7 @@ class AdminModule extends PLModule $res = XDB::iterator("SELECT alias FROM virtual INNER JOIN virtual_redirect USING(vid) - WHERE type = 'user' AND redirect LIKE '" . $login . "@%'"); + WHERE type = 'user' AND redirect LIKE '" . $mr['forlife'] . "@%'"); $page->assign('virtuals', $res); $page->assign('aliases', XDB::iterator( @@ -583,8 +608,8 @@ class AdminModule extends PLModule FROM aliases WHERE id = {?} AND type!='homonyme' ORDER BY type!= 'a_vie'", $mr["user_id"])); - if ($mr['perms'] != 'pending') { - $page->assign('emails',$redirect->emails); + if ($mr['perms'] != 'pending' && isset($redirect)) { + $page->assign('emails', $redirect->emails); } $page->assign('mr',$mr); diff --git a/templates/admin/utilisateurs.tpl b/templates/admin/utilisateurs.tpl index 58d91af..1942bd9 100644 --- a/templates/admin/utilisateurs.tpl +++ b/templates/admin/utilisateurs.tpl @@ -21,12 +21,6 @@ {**************************************************************************} -{if $smarty.session.suid} -

-Attention, déjà en SUID !!! -

-{/if} -

Gestion des utilisateurs

@@ -193,7 +187,11 @@ function clean_fwd(fwd) { - {if $mr.naiss_err}({icon name=error}Date de naissance incohérente){/if} + {if $mr.naissance_ini neq '0000-00-00' && $mr.naissance neq $mr.naissance_ini} + ({icon name=error}Date de naissance connue : {$mr.naissance_ini}) + {elseif $mr.naiss_err} + ({icon name=error}Date de naissance incohérente) + {/if} {/if} -- 2.1.4