Fix a bug in autoload
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 25 May 2007 20:39:38 +0000 (20:39 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Fri, 25 May 2007 20:39:38 +0000 (20:39 +0000)
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
include/validations/aliases.inc.php
modules/admin.php
templates/admin/utilisateurs.tpl

index f70a778..f72c3a8 100644 (file)
@@ -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;
         }
index c89e48d..2e8c948 100644 (file)
@@ -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={?}',
index d9a7857..dbc30fc 100644 (file)
@@ -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);
index 58d91af..1942bd9 100644 (file)
 {**************************************************************************}
 
 
-{if $smarty.session.suid}
-<p class="erreur">
-Attention, déjà en SUID !!!
-</p>
-{/if}
-
 <h1>
   Gestion des utilisateurs
 </h1>
@@ -193,7 +187,11 @@ function clean_fwd(fwd) {
       </td>
       <td>
         <input type="text" name="naissanceN" size="12" maxlength="10" value="{$mr.naissance}" />
-        {if $mr.naiss_err}<span class="erreur smaller">({icon name=error}Date de naissance incohérente)</span>{/if}
+        {if $mr.naissance_ini neq '0000-00-00' && $mr.naissance neq $mr.naissance_ini}
+          <span class="erreur smaller">({icon name=error}Date de naissance connue : {$mr.naissance_ini})</span>
+        {elseif $mr.naiss_err}
+          <span class="erreur smaller">({icon name=error}Date de naissance incohérente)</span>
+        {/if}
       </td>
     </tr>
     {/if}