X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=zncadmin%2FZNCServer.class.php;h=bc5093b9ad9fd76ab40460ff15eb9f37d839cab3;hb=1010de69b902158e5a75112d6b78c7b80a5b44d3;hp=d5d4badbc6ff85050cb1eaf12abfebaaada96d7d;hpb=6cd66f219f6024ce6400f25b7b0165d37449e49f;p=ZNCAdmin.git diff --git a/zncadmin/ZNCServer.class.php b/zncadmin/ZNCServer.class.php index d5d4bad..bc5093b 100644 --- a/zncadmin/ZNCServer.class.php +++ b/zncadmin/ZNCServer.class.php @@ -45,7 +45,7 @@ class ZNCServer { } public function getUserList() { - $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/webadmin/listusers"); + $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/global/webadmin/listusers"); $exp = explode('
', $html); $exp = explode('
', $exp[1]); $exp = explode('', $exp[0]); @@ -58,18 +58,16 @@ class ZNCServer { $exp2 = explode('', $exp[2]); $userdata['user'] = $exp2[0]; $exp2 = explode('', $exp[3]); - $userdata['clients'] = $exp2[0]; - $exp2 = explode('', $exp[4]); $userdata['server'] = $exp2[0]; - $exp2 = explode('', $exp[5]); - $userdata['nick'] = $exp2[0]; + $exp2 = explode('', $exp[4]); + $userdata['clients'] = $exp2[0]; $userlist[] = $userdata; } return $userlist; } public function getSeenList() { - $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/lastseen/"); + $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/global/lastseen/"); $exp = explode('
', $html); $exp = explode('
', $exp[1]); $exp = explode('', $exp[0]); @@ -99,14 +97,14 @@ class ZNCServer { ident */ public function addZNC($username, $password, $settings, $servers, $modules, $others) { - $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/webadmin/adduser"); + $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/global/webadmin/adduser"); $exp = explode('name="_CSRF_Check" value="', $html); $exp = explode('"', $exp[1]); $csrf = $exp[0]; $post = array(); $post['_CSRF_Check'] = $csrf; $post['submitted'] = '1'; - $post['doconnect'] = '1'; + //$post['doconnect'] = '1'; $post['user'] = $username; $post['password'] = $password; $post['password2'] = $password; @@ -114,22 +112,60 @@ class ZNCServer { $post['altnick'] = $settings['altnick']; $post['ident'] = $settings['ident']; $post['statusprefix'] = '*'; - $post['servers'] = implode("\n", $servers); $post['loadmod'] = array(); foreach($modules as $name => $args) { $post['loadmod'][] = $name; if($args != "") $post['modargs_'.$name] = $args; } + foreach($others as $name => $value) { $post[$name] = $value; } - $html = $this->connector->post("http://".$this->host.":".$this->port."/mods/webadmin/adduser", $post); + + $html = $this->connector->post("http://".$this->host.":".$this->port."/mods/global/webadmin/adduser", $post); + + if(!preg_match("/Invalid Submission/i", $html)) { + if(!$this->addNetwork($username, $settings, $servers, $other)) { + $handle = fopen('/home/srvx/neonserv/log.txt', 'a'); + fwrite($handle, "addZNC3\r\n"); + fclose($handle); + return false; + } + return !preg_match("/Invalid Submission/i", $html); + } + return !preg_match("/Invalid Submission/i", $html); + } + + public function addNetwork($username, $settings, $servers, $other) { + $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/global/webadmin/addnetwork?user=".$username); + $exp = explode('name="_CSRF_Check" value="', $html); + $exp = explode('"', $exp[1]); + $csrf = $exp[0]; + $post = array(); + $post['_CSRF_Check'] = $csrf; + $post['submitted'] = '1'; + $post['network'] = 'default'; + $post['nick'] = $settings['nick']; + $post['altnick'] = $settings['altnick']; + $post['ident'] = $settings['ident']; + $post['servers'] = implode("\n", $servers); + $post['doconnect'] = '1'; + $post['floodprotection'] = '1'; + $post['floodrate'] = '1.0'; + $post['floodburst'] = '4'; + $post['user'] = $username; + + foreach($others as $name => $value) { + $post[$name] = $value; + } + + $html = $this->connector->post("http://".$this->host.":".$this->port."/mods/global/webadmin/addnetwork", $post); return !preg_match("/Invalid Submission/i", $html); } public function delZNC($username) { - $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/webadmin/deluser?user=".$username); + $html = $this->connector->get("http://".$this->host.":".$this->port."/mods/global/webadmin/deluser?user=".$username); $exp = explode('name="_CSRF_Check" value="', $html); $exp = explode('"', $exp[1]); $csrf = $exp[0]; @@ -137,7 +173,7 @@ class ZNCServer { $post['_CSRF_Check'] = $csrf; $post['submitted'] = '1'; $post['user'] = $username; - $this->connector->post("http://".$this->host.":".$this->port."/mods/webadmin/deluser", $post); + $this->connector->post("http://".$this->host.":".$this->port."/mods/global/webadmin/deluser", $post); } private function parseHTMLFields($html, &$post) { @@ -209,10 +245,54 @@ class ZNCServer { $content = $content[0]; $post[$name] = $content; } + //select boxes + $selectboxes = explode("