Add option 'searchonly' for address books; currently used by LDAP directories

This commit is contained in:
thomascube
2011-09-21 11:17:46 +00:00
parent c054ec5c7a
commit 2d3e2bc561
9 changed files with 22 additions and 2 deletions

View File

@@ -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;

View File

@@ -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))
{

View File

@@ -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();