use get_user_login
authorPierre Habouzit (MadCoder <pierre.habouzit@m4x.org>
Sun, 12 Dec 2004 22:33:19 +0000 (22:33 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 26 Jun 2008 21:26:35 +0000 (23:26 +0200)
now that we have a tiny wonderful function.
use it everywhere !

git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-71

htdocs/TESTS/xorg_user.php
htdocs/carnet/mescontacts.php
htdocs/listes/admin.php
htdocs/listes/create.php
include/user.func.inc.php

index 1470e65..bdf7631 100644 (file)
@@ -29,6 +29,8 @@ class TestOfXOrgUsers extends UnitTestCase {
 
         $login = get_user_login("madcoder@polytechnique.org");
         $this->assertIdentical($login, 'madcoder');
+        $login = get_user_login("madcoder@polytechnique.org", true);
+        $this->assertIdentical($login, 'pierre.habouzit.2000');
         
         $login = get_user_login("madcoder@m4x.org");
         $this->assertIdentical($login, 'madcoder');
index a954250..2c80f2d 100644 (file)
@@ -45,15 +45,19 @@ if (isset($_REQUEST['action'])) {
         // si l'utilisateur demande l'ajout de qqun à sa liste
     } elseif ($_REQUEST["action"]=="ajouter") {
 
-        if (($res = $globals->db->query("SELECT id FROM aliases WHERE alias='{$_REQUEST['user']}' AND type!='homonyme'")) && mysql_num_rows($res)==1) {
-            list($cont_user_id) = mysql_fetch_row($res);
-            if ($globals->db->query("INSERT INTO contacts set uid = '{$_SESSION['uid']}', contact = '$cont_user_id'")) {
+        require_once('user.func.inc.php');
+        if (($login = get_user_login($_REQUEST['user'])) !== false) {
+            if ($globals->db->query("INSERT INTO  contacts (uid, contact)
+                                          SELECT  '{$_SESSION['uid']}', id
+                                            FROM  aliases
+                                           WHERE  alias='$login'"))
+            {
                 $page->trig('Contact ajouté !');
-            } else
+            } else {
                 $page->trig('Contact déjà dans la liste !');
-        } else {
-            $page->trig('Utilisateur inexistant ou non inscrit !');
+            }
         }
+
     }
 }
 
index 2e9865a..1947247 100644 (file)
@@ -29,10 +29,16 @@ require_once('lists.inc.php');
 $client =& lists_xmlrpc($_SESSION['uid'], $_SESSION['password']);
 
 if(isset($_REQUEST['add_member'])) {
-    $arr = $client->mass_subscribe($liste, Array($_REQUEST['add_member']));
+    require_once('user.func.inc.php');
+    if (($login = get_user_forlife($_REQUEST['add_member'])) === false) {;
+        $login = $_REQUEST['add_member'];
+    }
+
+    $arr = $client->mass_subscribe($liste, Array($login));
     if(is_array($arr)) {
        foreach($arr as $addr) {
             $page->trig("{$addr[0]} inscrit.");
+        }
     }
 }
 
@@ -42,7 +48,12 @@ if(isset($_REQUEST['del_member'])) {
 }
 
 if(isset($_REQUEST['add_owner'])) {
-    if($client->add_owner($liste, $_REQUEST['add_owner'])) {
+    require_once('user.func.inc.php');
+    if (($login = get_user_forlife($_REQUEST['add_owner'])) === false) {;
+        $login = $_REQUEST['add_owner'];
+    }
+
+    if($client->add_owner($liste, $login)) {
         $page->trig($_REQUEST['add_owner']." ajouté aux modérateurs.");
     }
 }
index f7bffc7..070e1d2 100644 (file)
@@ -27,28 +27,18 @@ $members = empty($_POST['members']) ? Array() : preg_split("/[\r\n]+/",$_POST['m
 
 if(isset($_POST['desc'])) $_POST['desc'] = stripslashes($_POST['desc']);
 
-if(isset($_POST['add_owner_sub']) && isset($_POST['add_owner'])) {
-    $res = $globals->db->query("
-       SELECT  a.alias AS forlife
-          FROM  aliases         AS a
-    INNER JOIN aliases         AS b USING(id)
-         WHERE  b.alias='{$_POST['add_owner']}' AND b.type!='homonyme' AND a.type='a_vie'");
-    if(list($forlife) = mysql_fetch_row($res)) {
-       $owners [] = $forlife;
+if(isset($_POST['add_owner_sub']) && !empty($_POST['add_owner'])) {
+    require_once('user.func.inc.php');
+    if (($forlife = get_user_forlife($_REQUEST['add_owner'])) === false) {;
+        $owners [] = $forlife;
     }
-    mysql_free_result($res);
 }
 
-if(isset($_POST['add_member_sub']) && isset($_POST['add_member'])) {
-    $res = $globals->db->query("
-       SELECT  a.alias AS forlife
-          FROM  aliases         AS a
-    INNER JOIN aliases         AS b USING(id)
-         WHERE  b.alias='{$_POST['add_member']}' AND b.type!='homonyme' AND a.type='a_vie'");
-    if(list($forlife) = mysql_fetch_row($res)) {
-       $members[] = $forlife;
+if(isset($_POST['add_member_sub']) && !empty($_POST['add_member'])) {
+    require_once('user.func.inc.php');
+    if (($forlife = get_user_forlife($_REQUEST['add_member'])) === false) {;
+        $members[] = $forlife;
     }
-    mysql_free_result($res);
 }
 
 ksort($owners);         array_unique($owners);
index aaea635..5753e8f 100644 (file)
@@ -69,7 +69,7 @@ function user_clear_all_subs($user_id, $really_del=true)
 // }}}
 // {{{ function get_user_login()
 
-function get_user_login($data) {
+function get_user_login($data, $get_forlife = false) {
     global $globals, $page;
 
     if (preg_match(',^[0-9]*$,', $data)) {
@@ -92,13 +92,21 @@ function get_user_login($data) {
     list($mbox, $fqdn) = split('@', $data);
     if ($fqdn == $globals->mail->domain || $fqdn == $globals->mail->domain2) {
 
-        $res = $globals->db->query("SELECT COUNT(alias) FROM aliases WHERE alias='$mbox' AND type IN ('alias', 'a_vie')");
-        list($c) = mysql_fetch_row($res);
-        mysql_free_result($res);
-        if (!$c && $page) {
-            $page->trig("il n'y a pas d'utilisateur avec ce login");
+        $res = $globals->db->query("SELECT  a.alias
+                                      FROM  aliases AS a
+                                INNER JOIN  aliases AS b ON (a.id = b.id AND b.type IN ('alias', 'a_vie') AND b.alias='$mbox')
+                                     WHERE  a.type = 'a_vie'");
+        if (mysql_num_rows($res)) {
+            if ($get_forlife) {
+                list($alias) = mysql_fetch_row($res);
+            } else {
+                $alias = $mbox;
+            }
+        } else {
+            $alias = false;
         }
-        return $c ? $mbox : false;
+        mysql_free_result($res);
+        return $alias;
 
     } elseif ($fqdn == $globals->mail->alias_dom || $fqdn == $globals->mail->alias_dom2) {
     
@@ -145,5 +153,13 @@ function get_user_login($data) {
 }
 
 // }}}
+// {{{ function get_user_forlife()
+
+function get_user_forlife($data) {
+    return get_user_login($data, true);
+}
+
+// }}}
+
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
 ?>