|
@@ -9,6 +9,7 @@ use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Distri
|
|
|
use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Domain;
|
|
use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Domain;
|
|
|
use ThurData\Servers\KerioEmail\App\Traits\ExtensionsCheckerTrait;
|
|
use ThurData\Servers\KerioEmail\App\Traits\ExtensionsCheckerTrait;
|
|
|
use ThurData\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
|
|
use ThurData\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
|
|
|
|
|
+use ThurData\Servers\KerioEmail\Api\KerioWhmcs;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
*
|
|
*
|
|
@@ -52,33 +53,67 @@ class TerminateAccount extends AddonController
|
|
|
*/
|
|
*/
|
|
|
protected function kerioRunService($params = null)
|
|
protected function kerioRunService($params = null)
|
|
|
{
|
|
{
|
|
|
- /**
|
|
|
|
|
- *
|
|
|
|
|
- * get soap create domain service
|
|
|
|
|
- */
|
|
|
|
|
- $service =(new KerioManager())
|
|
|
|
|
- ->getApiByServer($params['serverid'])
|
|
|
|
|
- ->soap
|
|
|
|
|
- ->service()
|
|
|
|
|
- ->deleteDomain()
|
|
|
|
|
- ->setFormData($params)
|
|
|
|
|
- ;
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- *
|
|
|
|
|
- * set params
|
|
|
|
|
- * run service (Create domain in Kerio API)
|
|
|
|
|
- */
|
|
|
|
|
- $result = $service->run();
|
|
|
|
|
|
|
+ $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
|
|
|
|
|
+ try {
|
|
|
|
|
+ $api->login($params['serverhostname'], $params['serverusername'], $params['serverpassword']);
|
|
|
|
|
+ $domainID = $api->getDomainId($params['domain']);
|
|
|
|
|
+ } catch (KerioApiException $error) {
|
|
|
|
|
+ logModuleCall(
|
|
|
|
|
+ 'kerioEmail',
|
|
|
|
|
+ __FUNCTION__,
|
|
|
|
|
+ $error,
|
|
|
|
|
+ 'Debug Error',
|
|
|
|
|
+ $error->getMessage()
|
|
|
|
|
+ );
|
|
|
|
|
+ return ['error' => $error->getMessage()];
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($domainID === FALSE) {
|
|
|
|
|
+ return "Error: Domain $domain not found";
|
|
|
|
|
+ }
|
|
|
|
|
+ // remove all users from domain
|
|
|
|
|
+ try {
|
|
|
|
|
+ $users = $api->getUsers(['id', 'loginName'], $domainID);
|
|
|
|
|
+ } catch (KerioApiException $error) {
|
|
|
|
|
+ logModuleCall(
|
|
|
|
|
+ 'kerioEmail',
|
|
|
|
|
+ __FUNCTION__,
|
|
|
|
|
+ $error,
|
|
|
|
|
+ 'Debug Error',
|
|
|
|
|
+ $error->getMessage()
|
|
|
|
|
+ );
|
|
|
|
|
+ return ['error' => $error->getMessage()];
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * check service result & return error
|
|
|
|
|
- */
|
|
|
|
|
- if(!$result)
|
|
|
|
|
- {
|
|
|
|
|
- return $service->getError();
|
|
|
|
|
|
|
+ foreach($users as $user) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ $api->deleteUser($user['id']);
|
|
|
|
|
+ } catch (KerioApiException $error) {
|
|
|
|
|
+ logModuleCall(
|
|
|
|
|
+ 'kerioEmail',
|
|
|
|
|
+ __FUNCTION__,
|
|
|
|
|
+ $error,
|
|
|
|
|
+ 'Debug Error',
|
|
|
|
|
+ $error->getMessage()
|
|
|
|
|
+ );
|
|
|
|
|
+ return ['error' => $error->getMessage()];
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // finally remove domain
|
|
|
|
|
+ try {
|
|
|
|
|
+ $result = $api->deleteDomain($domainID);
|
|
|
|
|
+ } catch (KerioApiException $error) {
|
|
|
|
|
+ logModuleCall(
|
|
|
|
|
+ 'kerioEmail',
|
|
|
|
|
+ __FUNCTION__,
|
|
|
|
|
+ $error,
|
|
|
|
|
+ 'Debug Error',
|
|
|
|
|
+ $error->getMessage()
|
|
|
|
|
+ );
|
|
|
|
|
+ return ['error' => $error->getMessage()];
|
|
|
|
|
+ }
|
|
|
|
|
+ $api->logout();
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* return success response
|
|
* return success response
|
|
|
*/
|
|
*/
|