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); } }