melix new way.
authorx2000habouzit <x2000habouzit>
Sun, 7 Nov 2004 18:19:02 +0000 (18:19 +0000)
committerx2000habouzit <x2000habouzit>
Sun, 7 Nov 2004 18:19:02 +0000 (18:19 +0000)
have to make the sql conversion scripts too

htdocs/alias.php
htdocs/emails.php
htdocs/routage-mail.php
include/valid_aliases.inc.php
scripts/migration/0.9.2/99_virtual.sql [new file with mode: 0644]

index 7150794..567a5b7 100644 (file)
@@ -18,7 +18,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: alias.php,v 1.6 2004-09-02 20:11:22 x2000habouzit Exp $
+        $Id: alias.php,v 1.7 2004-11-07 18:19:02 x2000habouzit Exp $
  ***************************************************************************/
 
 require("auto.prepend.inc.php");
@@ -29,7 +29,10 @@ new_skinned_page('alias.tpl', AUTH_MDP);
 $page->assign('demande', AliasReq::get_unique_request($_SESSION['uid']));
 
 //Récupération des alias éventuellement existants
-$sql = "SELECT domain from groupex.aliases WHERE id=12 AND email='{$_SESSION['forlife']}'";
+$sql = "SELECT  alias
+          FROM  virtual
+    INNER JOIN  virtual_redirect USING(vid)
+          WHERE redirect='{$_SESSION['forlife']}@m4x.org'";
 if($result = $globals->db->query($sql)) {
     list($aliases) = mysql_fetch_row($result);
     mysql_free_result($result);
@@ -53,7 +56,7 @@ if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) {
         $page->run('error');
     } else {
         //vérifier que l'alias n'est pas déja pris
-        $result = $globals->db->query("SELECT 1 FROM groupex.aliases WHERE id=12 AND domain LIKE '$alias@melix.net'");
+        $result = $globals->db->query("SELECT 1 FROM virtual WHERE alias='$alias@melix.net'");
         if (mysql_num_rows($result)>0) {
             $page->assign('error', "L'alias $alias@melix.net a déja été attribué.
                                     Tu ne peux donc pas l'obtenir.");
index 9284204..a3ffb2b 100644 (file)
@@ -18,7 +18,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: emails.php,v 1.8 2004-10-10 09:35:56 x2000chevalier Exp $
+        $Id: emails.php,v 1.9 2004-11-07 18:19:02 x2000habouzit Exp $
  ***************************************************************************/
 
 require("auto.prepend.inc.php");
@@ -38,7 +38,10 @@ $page->mysql_assign($sql, 'mails', 'nb_mails');
 
 
 // on regarde si l'utilisateur a un alias et si oui on l'affiche !
-$sql = "SELECT domain FROM groupex.aliases WHERE id=12 AND email like '".$_SESSION['forlife']."'";
+$sql = "SELECT  alias
+          FROM  virtual          AS v
+    INNER JOIN  virtual_redirect AS vr USING(vid)
+         WHERE  redirect='{$_SESSION['forlife']}@m4x.org'";
 $result = $globals->db->query($sql);
 if ($result && list($aliases) = mysql_fetch_row($result))
     $page->assign('melix', substr($aliases,0,-3));
index 5a2e967..1fe9f9a 100644 (file)
@@ -18,7 +18,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: routage-mail.php,v 1.8 2004-10-10 09:51:30 x2000chevalier Exp $
+        $Id: routage-mail.php,v 1.9 2004-11-07 18:19:02 x2000habouzit Exp $
  ***************************************************************************/
 
 require("auto.prepend.inc.php");
@@ -43,7 +43,10 @@ if (isset($_REQUEST['emailop'])) {
         $page->assign('retour', $redirect->modify_email($_REQUEST['emails_actifs'],$_REQUEST['emails_rewrite']));
     }
 }
-$sql = "SELECT domain FROM groupex.aliases WHERE id=12 AND email like'".$_SESSION['forlife']."'";
+$sql = "SELECT  alias
+          FROM  virtual
+    INNER JOIN  virtual_redirect USING(vid)
+          WHERE redirect='{$_SESSION['forlife']}@m4x.org'";
 $res = $globals->db->query($sql);
 list($grx) = mysql_fetch_row($res);
 $page->assign('grx',$grx);
index bf8984e..3b29745 100644 (file)
@@ -18,7 +18,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: valid_aliases.inc.php,v 1.16 2004-09-05 12:24:41 x2000habouzit Exp $
+        $Id: valid_aliases.inc.php,v 1.17 2004-11-07 18:19:03 x2000habouzit Exp $
  ***************************************************************************/
 
 class AliasReq extends Validate {
@@ -37,10 +37,11 @@ class AliasReq extends Validate {
         $this->raison = $_raison;
         
         $sql = $globals->db->query("
-           SELECT  l.alias,prenom,nom,domain
-             FROM  auth_user_md5   AS u
-       INNER JOIN  aliases         AS l ON (u.user_id=l.id AND type='a_vie')
-         LEFT JOIN  groupex.aliases AS a ON (a.email = l.alias and a.id = 12)
+           SELECT  l.alias,prenom,nom,v.alias
+             FROM  auth_user_md5    AS u
+       INNER JOIN  aliases          AS l  ON (u.user_id=l.id AND l.type='a_vie')
+        LEFT JOIN  virtual_redirect AS vr ON (CONCAT(l.alias,'@m4x.org') = vr.redirect)
+        LEFT JOIN  virtual          AS v  USING(vid)
              WHERE  user_id='".$this->uid."'");
         list($this->forlife,$this->prenom,$this->nom,$this->old) = mysql_fetch_row($sql);
         mysql_free_result($sql);
@@ -78,9 +79,14 @@ class AliasReq extends Validate {
     function commit () {
         global $globals;
 
-        $domain=$this->alias.'@melix.net';
-        $globals->db->query("DELETE FROM groupex.aliases WHERE id=12 AND email='{$this->forlife}'");
-        $globals->db->query("INSERT INTO groupex.aliases SET email='{$this->forlife}',domain='$domain',id=12");         
+       if($this->old) {
+           $globals->db->query("UPDATE virtual SET alias='{$this->alias}@melix.net' WHERE alias='{$this->old}'");
+
+       } else {
+           $globals->db->query("INSERT INTO virtual SET alias='{$this->alias}@melix.net',type='user'");
+           $vid = mysql_insert_id();
+           $globals->db->query("INSERT INTO virtual_redirect (vid,redirect) VALUES ($vid,'{$this->forlife}@m4x.org')");
+       }
     }
 }
 
diff --git a/scripts/migration/0.9.2/99_virtual.sql b/scripts/migration/0.9.2/99_virtual.sql
new file mode 100644 (file)
index 0000000..2b9c746
--- /dev/null
@@ -0,0 +1,5 @@
+alter table virtual change column vid vid int not null auto_increment;
+alter table virtual change column alias alias varchar(255) not null;
+alter table virtual add unique (alias) ;
+alter table virtual_redirect change column vid vid int not null auto_increment;
+alter table virtual_redirect add index (redirect);