/** * get's callend then online user is created * * @param array $params * */ public function onlineUserCreated($params) { if ($this->settings['enabled'] == true && $this->settings['online_visitors_tracking'] == true) { $onlineOptions = erLhcoreClassModelChatConfig::fetch('xmppservice_options')->data; if (isset($onlineOptions['track_online']) && $onlineOptions['track_online'] == true) { // Append automated hosting subdomain if required $subdomainUser = ''; if ($this->settings['subdomain'] != '') { $subdomainUser = '******' . $this->settings['subdomain']; } // Create DB record for XMPP user $xmppAccount = new erLhcoreClassModelXMPPAccount(); $xmppAccount->lactivity = $xmppAccount->ctime = time(); $xmppAccount->username = '******' . $params['ou']->id . $subdomainUser . '@' . $this->settings['xmpp_host']; $xmppAccount->password = substr(md5(microtime() . rand(0, 100) . $params['ou']->vid), 0, 20); $xmppAccount->user_id = $params['ou']->id; $xmppAccount->type = erLhcoreClassModelXMPPAccount::USER_TYPE_VISITOR; $xmppAccount->saveThis(); if ($this->settings['handler'] == 'rpc' && is_object($params['tpl']) && $this->settings['online_visitors_tracking'] == true) { $params['tpl']->set('xmppAccount', $xmppAccount); } // Forward this information to NodeJS server erLhcoreClassExtensionXmppserviceHandler::newOnlineVisitor(array('xmpp_account' => $xmppAccount, 'xmpp_host' => $this->settings['xmpp_host'], 'ou' => $params['ou'], 'host_login' => $this->settings['host_login'], 'node_api_server' => $this->settings['node_api_server'], 'handler' => $this->settings['handler'], 'rpc_server' => $this->settings['rpc_server'], 'rpc_username' => $this->settings['rpc_username'], 'rpc_password' => $this->settings['rpc_password'], 'rpc_account_host' => $this->settings['rpc_account_host'])); erLhcoreClassChatEventDispatcher::getInstance()->dispatch('xmppservice.online_account_created', array('xmppaccount' => $xmppAccount, 'ou' => $params['ou'])); } } }