From ab0b51a1fef87bcc643c3aaf2e635c811b28ccd8 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Tue, 15 Feb 2011 06:10:59 -0500 Subject: [PATCH] - Use only one from IMAP authentication methods to prevent login delays (1487784) --- program/include/rcube_addressbook.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+), 0 deletions(-) diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php index c3c8e92..d1b0f62 100644 --- a/program/include/rcube_addressbook.php +++ b/program/include/rcube_addressbook.php @@ -32,6 +32,7 @@ const ERROR_NO_CONNECTION = 2; const ERROR_INCOMPLETE = 3; const ERROR_SAVING = 4; + const ERROR_SEARCH = 5; /** public properties (mandatory) */ public $primary_key; @@ -167,6 +168,35 @@ { $this->page_size = (int)$size; } + + + /** + * Check the given data before saving. + * If input not valid, the message to display can be fetched using get_error() + * + * @param array Assoziative array with data to save + * @return boolean True if input is valid, False if not. + */ + public function validate($save_data) + { + if (empty($save_data['name'])) { + $this->set_error('warning', 'nonamewarning'); + return false; + } + + // check validity of email addresses + foreach ($this->get_col_values('email', $save_data, true) as $email) { + if (strlen($email)) { + if (!check_email(rcube_idn_to_ascii($email))) { + $this->set_error('warning', rcube_label(array('name' => 'emailformaterror', 'vars' => array('email' => $email)))); + return false; + } + } + } + + return true; + } + /** * Create a new contact record @@ -355,6 +385,26 @@ return $out; } + + + /** + * Normalize the given string for fulltext search. + * Currently only optimized for Latin-1 characters; to be extended + * + * @param string Input string (UTF-8) + * @return string Normalized string + */ + protected static function normalize_string($str) + { + $norm = strtolower(strtr(utf8_decode($str), + '��������������������������������������������������', + 'ccaaaaeeeeiiiaeooouuuyooaiounnaaaaaeeeiiioooouuuyy')); + + return preg_replace( + array('/[\s;\+\-\/]+/i', '/(\d)\s+(\d)/', '/\s\w{1,3}\s/'), + array(' ', '\\1\\2', ' '), + $norm); + } } -- Gitblit v1.9.1