/** * delete xmpp user operator/visitor/chat based * * @param unknown $params */ public static function deleteXMPPUser($params) { $xmppAccount = $params['xmpp_account']; $userParts = explode('@', $xmppAccount->username); // Append automated hosting subdomain if required $subdomainUser = erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionXmppservice')->settings['subdomain']; if ($subdomainUser != '') { $subdomainUser = '******' . $subdomainUser; } // Delete from shared roaster first $data = array("user" => $userParts[0], "host" => $params['xmpp_host'], "grouphost" => $params['xmpp_host'], "group" => $xmppAccount->type == erLhcoreClassModelXMPPAccount::USER_TYPE_OPERATOR ? 'operators' . $subdomainUser : '******' . $subdomainUser); try { if ($params['handler'] == 'rpc') { $rpc = new \GameNet\Jabber\RpcClient(array('server' => $params['rpc_server'], 'host' => $params['xmpp_host'], 'account_host' => $params['rpc_account_host'], 'username' => $params['rpc_username'], 'password' => $params['rpc_password'])); $rpc->deleteUserSharedRosterGroup($data['user'], $data['group']); } else { $response = self::sendRequest($params['node_api_server'] . '/xmpp-delete-user-from-roaster', $data); if ($response['error'] == true) { throw new Exception($response['msg']); } } } catch (Exception $e) { if (erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionXmppservice')->settings['debug'] == true) { erLhcoreClassLog::write(print_r($e, true)); } throw new Exception('Could not delete user from roaster!'); } // Delete user $data = array("user" => $userParts[0], "host" => $params['xmpp_host']); try { if ($params['handler'] == 'rpc') { $rpc = new \GameNet\Jabber\RpcClient(array('server' => $params['rpc_server'], 'host' => $params['xmpp_host'], 'account_host' => $params['rpc_account_host'], 'username' => $params['rpc_username'], 'password' => $params['rpc_password'])); $rpc->unregisterUser($data['user']); } else { $response = self::sendRequest($params['node_api_server'] . '/xmpp-unregister', $data); if ($response['error'] == true) { throw new Exception($response['msg']); } } } catch (Exception $e) { if (erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionXmppservice')->settings['debug'] == true) { erLhcoreClassLog::write(print_r($e, true)); } throw new Exception('Could not delete user!'); } }