From 5f6f2eb095f818dfcaf1bb7107cbf4712cd5d517 Mon Sep 17 00:00:00 2001 From: Boris Gulay Date: Mon, 1 Jun 2020 17:20:12 +0300 Subject: [PATCH] Render selector with only one query --- ident_switch.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ident_switch.php b/ident_switch.php index e8dc7f3..87e74aa 100644 --- a/ident_switch.php +++ b/ident_switch.php @@ -112,7 +112,13 @@ class ident_switch extends rcube_plugin $accSelected = -1; // Get list of alternative accounts - $sql = 'SELECT id, iid, label, username FROM ' . $rc->db->table_name(self::TABLE) . ' WHERE user_id = ? AND flags & ? > 0'; + $sql = "SELECT " + . "isw.id, isw.iid, isw.label, isw.username, ii.email" + . " FROM" + . " {$rc->db->table_name(self::TABLE)} isw" + . " INNER JOIN {$rc->db->table_name('identities')} ii ON isw.iid=ii.identity_id" + . " WHERE isw.user_id = ? AND isw.flags & ? > 0"; + self::write_log($sql); $qRec = $rc->db->query($sql, $rc->user->data['user_id'], self::DB_ENABLED); while ($r = $rc->db->fetch_assoc($qRec)) { @@ -125,13 +131,7 @@ class ident_switch extends rcube_plugin if (!$lbl) { if (!$r['username']) - { // Load email from identity - $sql = 'SELECT email FROM ' . $rc->db->table_name('identities') . ' WHERE identity_id = ?'; - $q = $rc->db->query($sql, $r['iid']); - $rIid = $rc->db->fetch_assoc($q); - - $r['username'] = $rIid['email']; - } + $r['username'] = $r['email']; if (strpos($r['username'], '@') === false) $lbl = $r['username'] . '@' . ($r['host'] ? $r['host'] : 'localhost');