Merge branch 'xorg/maint' into xorg/master
[platal.git] / plugins / insert.getUserName.php
index bd7af29..7caa9a2 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2011 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
 
 function smarty_insert_getUsername()
 {
-    global $globals;
-
     $id = Cookie::i('uid', -1);
-    $id = S::v($_SESSION['uid'], $id);
+    $id = S::v('uid', $id);
 
-    if ($id<0) {
-        return "";
+    if ($id < 0) {
+        return '';
     }
 
-    if (Cookie::v('domain', 'login') != 'alias') {
-       $res = XDB::query("SELECT  alias FROM aliases
-                                     WHERE  id={?} AND (type IN ('a_vie','alias') AND FIND_IN_SET('bestalias', flags))", $id);
-       return $res->fetchOneCell();
+    $domain = Cookie::v('domain', 'login');
+    if ($domain == 'hruid') {
+        return XDB::fetchOneCell('SELECT  hruid
+                                    FROM  accounts
+                                   WHERE  uid = {?}',
+                                 $id);
+    } elseif ($domain == 'alias') {
+        return XDB::fetchOneCell('SELECT  email
+                                    FROM  email_source_account
+                                   WHERE  uid = {?} AND type = \'alias_aux\'',
+                                 $id);
     } else {
-       $res = XDB::query("
-               SELECT v.alias
-                 FROM virtual AS v
-           INNER JOIN virtual_redirect USING(vid)
-           INNER JOIN aliases AS a ON(id={?} AND a.type='a_vie')
-                 WHERE redirect = CONCAT(a.alias, {?})
-                      OR redirect = CONCAT(a.alias, {?})",
-               $id, "@".$globals->mail->domain, "@".$globals->mail->domain2);
-       $alias = $res->fetchOneCell();
-       return substr($alias, 0, strpos($alias, "@"));
-     }
+        return XDB::fetchOneCell('SELECT  email
+                                    FROM  email_source_account
+                                   WHERE  uid = {?} AND type != \'alias_aux\'
+                                ORDER BY  NOT FIND_IN_SET(\'bestalias\', flags), CHAR_LENGTH(email)',
+                                 $id);
+    }
 
-     return $login;
+     return '';
 }
 
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: