Fix bug where rcube_contacts::get_record() could return cached result when requested record wasn't found (#5218)

pull/5227/head
Aleksander Machniak 8 years ago
parent 6e4642b12c
commit 52106ffd39

@ -130,10 +130,10 @@ abstract class rcube_addressbook
/** /**
* Get a specific contact record * Get a specific contact record
* *
* @param mixed record identifier(s) * @param mixed Record identifier(s)
* @param boolean True to return record as associative array, otherwise a result set is returned * @param boolean True to return record as associative array, otherwise a result set is returned
* *
* @return mixed Result object with all record fields or False if not found * @return rcube_result_set|array Result object with all record fields
*/ */
abstract function get_record($id, $assoc=false); abstract function get_record($id, $assoc=false);

@ -542,7 +542,7 @@ class rcube_contacts extends rcube_addressbook
* @param mixed $id Record identifier(s) * @param mixed $id Record identifier(s)
* @param bool $assoc Enables returning associative array * @param bool $assoc Enables returning associative array
* *
* @return mixed Result object with all record fields or False if not found * @return rcube_result_set|array Result object with all record fields
*/ */
function get_record($id, $assoc = false) function get_record($id, $assoc = false)
{ {
@ -560,6 +560,8 @@ class rcube_contacts extends rcube_addressbook
$this->user_id $this->user_id
); );
$this->result = null;
if ($sql_arr = $this->db->fetch_assoc()) { if ($sql_arr = $this->db->fetch_assoc()) {
$record = $this->convert_db_data($sql_arr); $record = $this->convert_db_data($sql_arr);
$this->result = new rcube_result_set(1); $this->result = new rcube_result_set(1);

Loading…
Cancel
Save