コード例 #1
0
 /**
  * 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!');
     }
 }