Render selector with only one query
This commit is contained in:
@@ -112,7 +112,13 @@ class ident_switch extends rcube_plugin
|
|||||||
$accSelected = -1;
|
$accSelected = -1;
|
||||||
|
|
||||||
// Get list of alternative accounts
|
// 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);
|
$qRec = $rc->db->query($sql, $rc->user->data['user_id'], self::DB_ENABLED);
|
||||||
while ($r = $rc->db->fetch_assoc($qRec))
|
while ($r = $rc->db->fetch_assoc($qRec))
|
||||||
{
|
{
|
||||||
@@ -125,13 +131,7 @@ class ident_switch extends rcube_plugin
|
|||||||
if (!$lbl)
|
if (!$lbl)
|
||||||
{
|
{
|
||||||
if (!$r['username'])
|
if (!$r['username'])
|
||||||
{ // Load email from identity
|
$r['username'] = $r['email'];
|
||||||
$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'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strpos($r['username'], '@') === false)
|
if (strpos($r['username'], '@') === false)
|
||||||
$lbl = $r['username'] . '@' . ($r['host'] ? $r['host'] : 'localhost');
|
$lbl = $r['username'] . '@' . ($r['host'] ? $r['host'] : 'localhost');
|
||||||
|
|||||||
Reference in New Issue
Block a user