Fixed vary dangerous error when while editing settings ALL records ware

updated instead of only one.
This commit is contained in:
Boris Gulay
2016-05-28 00:29:35 +03:00
parent 5ad75ce989
commit d667518d1f

View File

@@ -248,14 +248,15 @@ class ident_switch extends rcube_plugin
return $args; return $args;
} }
$sql = 'SELECT password FROM ' . $rc->db->table_name($this->table) . ' WHERE iid = ? AND user_id = ?'; $sql = 'SELECT id, password FROM ' . $rc->db->table_name($this->table) . ' WHERE iid = ? AND user_id = ?';
$q = $rc->db->query($sql, $args['id'], $rc->user->ID); $q = $rc->db->query($sql, $args['id'], $rc->user->ID);
$r = $rc->db->fetch_assoc($q); $r = $rc->db->fetch_assoc($q);
if ($r) if ($r)
{ // Record already exists, will update it { // Record already exists, will update it
$sql = 'UPDATE ' . $sql = 'UPDATE ' .
$rc->db->table_name($this->table) . $rc->db->table_name($this->table) .
' SET flags = ?, label = ?, host = ?, port = ?, username = ?, password = ?, delimiter = ?, user_id = ?, iid = ?'; ' SET flags = ?, label = ?, host = ?, port = ?, username = ?, password = ?, delimiter = ?, user_id = ?, iid = ?' .
' WHERE id = ?';
} }
else if ($flags & $this->db_enabled) else if ($flags & $this->db_enabled)
{ // No record exists, create new one { // No record exists, create new one
@@ -281,7 +282,8 @@ class ident_switch extends rcube_plugin
$fPass, $fPass,
$fDelim, $fDelim,
$rc->user->ID, $rc->user->ID,
$args['id'] $args['id'],
$r['id']
); );
} }