diff options
author | thomascube <thomas@roundcube.net> | 2011-09-21 11:17:46 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2011-09-21 11:17:46 +0000 |
commit | 2d3e2bc56108fc014edfaa154237b551daea4cc0 (patch) | |
tree | 26430c969e5879944c3fc92609cd6d0ff3e41174 | |
parent | c054ec5c7a859aa15243f0b1cbd3e84239ed4023 (diff) |
Add option 'searchonly' for address books; currently used by LDAP directories
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | config/main.inc.php.dist | 4 | ||||
-rw-r--r-- | program/include/rcube_addressbook.php | 1 | ||||
-rw-r--r-- | program/include/rcube_ldap.php | 9 | ||||
-rw-r--r-- | program/include/rcube_result_set.php | 3 | ||||
-rw-r--r-- | program/localization/de_CH/messages.inc | 1 | ||||
-rw-r--r-- | program/localization/de_DE/messages.inc | 1 | ||||
-rw-r--r-- | program/localization/en_US/messages.inc | 1 | ||||
-rw-r--r-- | program/steps/addressbook/list.inc | 3 |
9 files changed, 22 insertions, 2 deletions
@@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Add option 'searchonly' for LDAP address books - Add Priority filter to the messages list - Cache synchronization using QRESYNC/CONDSTORE - Fix locked folder rename option on servers supporting RFC2086 only (#1488089) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index 941795f68..466c2bd47 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -540,9 +540,11 @@ $rcmail_config['ldap_public']['Verisign'] = array( 'auth_cid' => '', // SASL authentication method (for proxy auth), e.g. DIGEST-MD5 'auth_method' => '', - // Indicates if the addressbook shall be displayed on the list. + // Indicates if the addressbook shall be hidden from the list. // With this option enabled you can still search/view contacts. 'hidden' => false, + // Indicates if the addressbook shall not list contacts but only allows searching. + 'searchonly' => false, // Indicates if we can write to the LDAP directory or not. // If writable is true then these fields need to be populated: // LDAP_Object_Classes, required_fields, LDAP_rdn diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php index 6d126e9e3..94a715bae 100644 --- a/program/include/rcube_addressbook.php +++ b/program/include/rcube_addressbook.php @@ -38,6 +38,7 @@ abstract class rcube_addressbook public $primary_key; public $groups = false; public $readonly = true; + public $searchonly = false; public $undelete = false; public $ready = false; public $group_id = null; diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php index c6ca88e5e..13e7b5448 100644 --- a/program/include/rcube_ldap.php +++ b/program/include/rcube_ldap.php @@ -71,6 +71,9 @@ class rcube_ldap extends rcube_addressbook function __construct($p, $debug=false, $mail_domain=NULL) { $this->prop = $p; + + if (isset($p['searchonly'])) + $this->searchonly = $p['searchonly']; // check if groups are configured if (is_array($p['groups']) && count($p['groups'])) { @@ -429,6 +432,12 @@ class rcube_ldap extends rcube_addressbook */ function list_records($cols=null, $subset=0) { + if ($this->prop['searchonly'] && empty($this->filter) && !$this->group_id) { + $this->result = new rcube_result_set(0); + $this->result->searchonly = true; + return $this->result; + } + // add general filter to query if (!empty($this->prop['filter']) && empty($this->filter)) { diff --git a/program/include/rcube_result_set.php b/program/include/rcube_result_set.php index 10361609f..db52fc55b 100644 --- a/program/include/rcube_result_set.php +++ b/program/include/rcube_result_set.php @@ -5,7 +5,7 @@ | program/include/rcube_result_set.php | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2006-2010, The Roundcube Dev Team | + | Copyright (C) 2006-2011, The Roundcube Dev Team | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -31,6 +31,7 @@ class rcube_result_set var $count = 0; var $first = 0; var $current = 0; + var $searchonly = false; var $records = array(); diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc index e7277e3c0..151fe2593 100644 --- a/program/localization/de_CH/messages.inc +++ b/program/localization/de_CH/messages.inc @@ -48,6 +48,7 @@ $messages['blockedimages'] = 'Um Ihre Privatsphäre zur schützen, wurden extern $messages['encryptedmessage'] = 'Dies ist eine verschlüsselte Nachricht und kann leider nicht angezeigt werden.'; $messages['nocontactsfound'] = 'Keine Kontakte gefunden'; $messages['contactnotfound'] = 'Die gewählte Adresse wurde nicht gefunden'; +$messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte zu finden'; $messages['sendingfailed'] = 'Versand der Nachricht fehlgeschlagen'; $messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht'; $messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten'; diff --git a/program/localization/de_DE/messages.inc b/program/localization/de_DE/messages.inc index 59bf360aa..e88ea9035 100644 --- a/program/localization/de_DE/messages.inc +++ b/program/localization/de_DE/messages.inc @@ -49,6 +49,7 @@ $messages['blockedimages'] = 'Um Ihre Privatsphäre zur schützen, wurden extern $messages['encryptedmessage'] = 'Dies ist eine verschlüsselte Nachricht und kann leider nicht angezeigt werden.'; $messages['nocontactsfound'] = 'Keine Kontakte gefunden'; $messages['contactnotfound'] = 'Der angeforderte Kontakt wurde nicht gefunden'; +$messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte zu finden'; $messages['sendingfailed'] = 'Versenden der Nachricht fehlgeschlagen'; $messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht'; $messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten'; diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc index 65bc9ca6a..8ca06a67a 100644 --- a/program/localization/en_US/messages.inc +++ b/program/localization/en_US/messages.inc @@ -48,6 +48,7 @@ $messages['blockedimages'] = 'To protect your privacy, remote images are blocked $messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!'; $messages['nocontactsfound'] = 'No contacts found.'; $messages['contactnotfound'] = 'The requested contact was not found.'; +$messages['contactsearchonly'] = 'Enter some search terms to find contacts'; $messages['sendingfailed'] = 'Failed to send message.'; $messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.'; $messages['errorsavingsent'] = 'An error occured while saving sent message.'; diff --git a/program/steps/addressbook/list.inc b/program/steps/addressbook/list.inc index dbc86e20f..313b52ea1 100644 --- a/program/steps/addressbook/list.inc +++ b/program/steps/addressbook/list.inc @@ -73,6 +73,9 @@ else { // get contacts for this user $result = $CONTACTS->list_records(array('name')); + + if (!$result->count && $result->searchonly) + $OUTPUT->show_message('contactsearchonly', 'notice'); } // update message count display |