Only uses autoload to require validation classes.
[platal.git] / plugins / insert.getUserName.php
index 9cc219f..7d69ee9 100644 (file)
@@ -24,30 +24,36 @@ 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  uid={?} AND (type IN ('a_vie','alias') AND FIND_IN_SET('bestalias', flags))", $id);
+        $res = XDB::query("SELECT  alias
+                             FROM  aliases
+                            WHERE  uid = {?} AND (type IN ('a_vie', 'alias') AND FIND_IN_SET('bestalias', flags))",
+                          $id);
         return $res->fetchOneCell();
     } else {
         $res = XDB::query("
             SELECT  v.alias
               FROM  virtual AS v
-        INNER JOIN  virtual_redirect USING(vid)
-        INNER JOIN  aliases AS a ON(uid={?} 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, "@"));
+        INNER JOIN  virtual_redirect USING (vid)
+        INNER JOIN  aliases AS a ON (uid = {?} AND a.type = 'a_vie')
+             WHERE  redirect = CONCAT(a.alias, {?}) OR redirect = CONCAT(a.alias, {?})",
+            $id, '@' . $globals->mail->domain, '@' . $globals->mail->domain2);
+        $aliases = $res->fetchAllAssoc();
+        foreach ($aliases as $alias) {
+            list($login, $domain) = explode('@', $alias['alias']);
+            if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) {
+                return $login;
+            }
+        }
      }
 
-     return $login;
+     return '';
 }
 
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: