New adress book provider

This commit is contained in:
RainLoop Team 2014-04-18 19:31:30 +04:00
parent 5da5e8ac61
commit 91e3bd72d6
8 changed files with 2167 additions and 0 deletions

View file

@ -72,6 +72,11 @@ class Actions
*/
private $oSettingsProvider;
/**
* @var \RainLoop\Providers\AddressBook
*/
private $oAddressBookProvider;
/**
* @var \RainLoop\Providers\PersonalAddressBook
*/
@ -121,6 +126,7 @@ class Actions
$this->oFilesProvider = null;
$this->oSettingsProvider = null;
$this->oDomainProvider = null;
$this->oAddressBookProvider = null;
$this->oPersonalAddressBookProvider = null;
$this->oSuggestionsProvider = null;
$this->oChangePasswordProvider = null;
@ -254,6 +260,26 @@ class Actions
$oResult = new \RainLoop\Providers\PersonalAddressBook\PdoPersonalAddressBook($sDsn, $sUser, $sPassword, $sDsnType);
}
$oResult->SetLogger($this->Logger());
break;
case 'address-book':
// \RainLoop\Providers\AddressBook\AddressBookInterface
$sDsn = \trim($this->Config()->Get('contacts', 'pdo_dsn', ''));
$sUser = \trim($this->Config()->Get('contacts', 'pdo_user', ''));
$sPassword = (string) $this->Config()->Get('contacts', 'pdo_password', '');
$sDsnType = $this->ValidateContactPdoType(\trim($this->Config()->Get('contacts', 'type', 'sqlite')));
if ('sqlite' === $sDsnType)
{
$oResult = new \RainLoop\Providers\AddressBook\PdoAddressBook(
'sqlite:'.APP_PRIVATE_DATA.'AddressBook.sqlite', '', '', 'sqlite');
}
else
{
$oResult = new \RainLoop\Providers\AddressBook\PdoAddressBook($sDsn, $sUser, $sPassword, $sDsnType);
}
$oResult->SetLogger($this->Logger());
break;
case 'suggestions':
@ -579,6 +605,25 @@ class Actions
return $this->oSuggestionsProvider;
}
/**
* @param \RainLoop\Account $oAccount = null
* @param bool $bForceEnable = false
*
* @return \RainLoop\Providers\AddressBook
*/
public function AddressBookProvider($oAccount = null, $bForceEnable = false)
{
if (null === $this->oAddressBookProvider)
{
$this->oAddressBookProvider = new \RainLoop\Providers\AddressBook(
$this->Config()->Get('contacts', 'enable', false) || $bForceEnable ? $this->fabrica('address-book', $oAccount) : null);
$this->oAddressBookProvider->SetLogger($this->Logger());
}
return $this->oAddressBookProvider;
}
/**
* @param \RainLoop\Account $oAccount = null