forked from extern/egroupware
"show only active account in the addressbook (only for sql account repository)"
This commit is contained in:
parent
1d51464746
commit
9083041e37
@ -30,6 +30,16 @@ class addressbook_sql extends so_sql
|
|||||||
var $contact_repository = 'sql';
|
var $contact_repository = 'sql';
|
||||||
var $grants;
|
var $grants;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* join to show only active account (and not already expired ones)
|
||||||
|
*/
|
||||||
|
const ACOUNT_ACTIVE_JOIN = ' LEFT JOIN egw_accounts ON egw_addressbook.account_id=egw_accounts.account_id';
|
||||||
|
/**
|
||||||
|
* filter to show only active account (and not already expired ones)
|
||||||
|
* UNIX_TIMESTAMP(NOW()) gets replaced with value of time() in the code!
|
||||||
|
*/
|
||||||
|
const ACOUNT_ACTIVE_FILTER = '(account_expires IS NULL OR account_expires = -1 OR account_expires > UNIX_TIMESTAMP(NOW()))';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* internal name of the id, gets mapped to uid
|
* internal name of the id, gets mapped to uid
|
||||||
*
|
*
|
||||||
@ -396,6 +406,12 @@ class addressbook_sql extends so_sql
|
|||||||
$extra_cols[] = $matches[1];
|
$extra_cols[] = $matches[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// add join to show only active accounts (only if accounts are shown and in sql and we not already join the accounts table, eg. used by admin)
|
||||||
|
if (!$owner && substr($this->account_repository,0,3) == 'sql' && strpos($join,$GLOBALS['egw']->accounts->backend->table) === false)
|
||||||
|
{
|
||||||
|
$join .= self::ACOUNT_ACTIVE_JOIN;
|
||||||
|
$filter[] = str_replace('UNIX_TIMESTAMP(NOW())',time(),self::ACOUNT_ACTIVE_FILTER);
|
||||||
|
}
|
||||||
$rows =& parent::search($criteria,$only_keys,$order_by,$extra_cols,$wildcard,$empty,$op,$start,$filter,$join,$need_full_no_count);
|
$rows =& parent::search($criteria,$only_keys,$order_by,$extra_cols,$wildcard,$empty,$op,$start,$filter,$join,$need_full_no_count);
|
||||||
|
|
||||||
if ($start === false) $this->total = is_array($rows) ? count($rows) : 0; // so_sql sets total only for $start !== false!
|
if ($start === false) $this->total = is_array($rows) ? count($rows) : 0; // so_sql sets total only for $start !== false!
|
||||||
|
Loading…
Reference in New Issue
Block a user