getName(), "name"),
new SoapParam($account->getPassword(), "password"),
];
/**
* add account params
*/
foreach ($account->getAttrs() as $key => $value)
{
$params[] = new SoapVar('' . $value . '', XSD_ANYXML);
}
/**
* run request
*/
$result = $this->connection->request("CreateAccountRequest", $params);
$this->setLastResult($result);
/**
* load response to model
*/
if($accountData = $result->getResponseBody()['CREATEACCOUNTRESPONSE']['ACCOUNT'])
{
$account->fill($accountData);
return $account;
}
$this->setError($result->getLastError());
return false;
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\AccountAlias $alias
* @return \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\AccountAlias
*/
public function createAlias(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\AccountAlias $alias)
{
$params = [
new SoapParam($alias->getAccountId(), "id"),
new SoapParam($alias->getAlias(), "alias"),
];
$result = $this->connection->request("AddAccountAliasRequest", $params);
$this->setLastResult($result);
if(!$result->getLastError())
{
return $alias;
}
$this->setError($result->getLastError());
return false;
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account
* @return bool|\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account
*/
public function update(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account)
{
$params = [
new SoapParam($account->getId(), "id"),
];
/**
* add account params
*/
foreach ($account->getAttrs() as $key => $value)
{
$params[] = new SoapVar('' . $value . '', XSD_ANYXML);
}
$result = $this->connection->request("ModifyAccountRequest", $params);
$this->setLastResult($result);
if($accountData = $result->getResponseBody()['MODIFYACCOUNTRESPONSE']['ACCOUNT'])
{
$account->fill($accountData);
return $account;
}
$this->setError($result->getLastError());
return false;
}
public function setPassword(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account)
{
$params = [
new SoapParam($account->getId(), "id"),
new SoapParam($account->getPassword(), "newPassword"),
];
$result = $this->connection->request("SetPasswordRequest", $params);
$this->setLastResult($result);
if($result->getLastError())
{
$this->setError($result->getLastError());
return false;
}
return true;
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account
* @return bool
*/
public function delete(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account)
{
$params = [
new SoapParam($account->getId(), "id"),
];
$result = $this->connection->request("DeleteAccountRequest", $params);
$this->setLastResult($result);
if($result->getLastError())
{
$this->setError($result->getLastError());
return false;
}
return true;
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\AccountAlias $alias
* @return bool
*/
public function deleteAlias(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\AccountAlias $alias)
{
$params = [
new SoapParam($alias->getAccountId(), "id"),
new SoapParam($alias->getAlias(), "alias"),
];
$result = $this->connection->request("RemoveAccountAliasRequest", $params);
$this->setLastResult($result);
if(!$result->getLastError())
{
return true;
}
$this->setError($result->getLastError());
return false;
}
/**
* @param $name
* @return \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Response
*/
public function getAccountId($name)
{
$params = [
new SoapVar('' . $name . '', XSD_ANYXML),
];
return $this->connection->cleanResponse()->request("GetAccountInfoRequest", $params);
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account
* @return \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Response
*/
public function getAccountInfo(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account)
{
if($value = $account->getId())
{
$type = 'id';
}elseif($value =$account->getName())
{
$type = 'name';
}
$result = null;
$params = [
new SoapVar('' . $value . '', XSD_ANYXML),
];
return $this->connection->request("GetAccountInfoRequest", $params);
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account
* @return \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Response
*/
public function delegateAuth(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account)
{
if($value = $account->getId())
{
$type = 'id';
}elseif($value =$account->getName())
{
$type = 'name';
}
$result = null;
$params = [
new SoapVar('' . $value . '', XSD_ANYXML),
];
$result = $this->connection->cleanResponse()->request("DelegateAuthRequest", $params);
$this->setLastResult($result);
if($result->getLastError())
{
$this->setError($result->getLastError());
return false;
}
return $result;
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account
* @return \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Response
*/
public function getAccountOptions(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Account $account)
{
if($value = $account->getId())
{
$type = 'id';
}elseif($value =$account->getName())
{
$type = 'name';
}
$params = [
new SoapVar('' . $value . '', XSD_ANYXML),
];
return $this->connection
->cleanResponse()
->request("GetAccountRequest", $params);
}
/**
* @param \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Domain $domain
* @return \ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Response
*/
public function getAllByDomain(\ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Domain $domain)
{
if($value = $domain->getId())
{
$type = 'id';
}elseif($value =$domain->getName())
{
$type = 'name';
}
$params = [
new SoapVar('' . $value . '', XSD_ANYXML),
];
$result = $this->connection->request("GetAllAccountsRequest", $params);
return $result;
}
public function getAllAccounts($idOrNameDomain, $type = "auto")
{
if ($type == "auto")
{
//$realType = getDomainType($idOrNameDomain);
}
else
{
$realType = $type;
}
$result = null;
$params = [
new SoapVar('' . $idOrNameDomain . '', XSD_ANYXML),
];
return $this->connection->request("GetAllAccountsRequest", $params);
}
}