made add and list compatible
authorNurPech <nurpech@nurpech.de>
Sun, 27 Jan 2013 16:00:27 +0000 (17:00 +0100)
committerNurPech <nurpech@nurpech.de>
Sun, 27 Jan 2013 16:00:27 +0000 (17:00 +0100)
zncadmin.php
zncadmin/ZNCServer.class.php

index 78937925953b5c40ba70e4cfc35f10bebecceef9..bbc5e95af8f1f9ac31201b25e3fbea9fd4a11610 100644 (file)
@@ -159,7 +159,7 @@ function zncadmin_search() {
     }
     $mask = preg_prepare($mask);
     $table = new Table(5);
-    $table->add("Server", "User", "Clients", "Server", "Nick");
+    $table->add("Server", "User", "Clients", "Server");
     $count = 0;
     foreach($zncservers as $zncserver) {
         $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
@@ -209,7 +209,7 @@ function zncadmin_search() {
             }
             if($skip) continue;
             if(preg_match("#^".$mask."$#i", $user['user'])) {
-                $table->add($zncserver['name'], $user['user'], $user['clients'], $user['server'], $user['nick']);
+                $table->add($zncserver['name'], $user['user'], $user['clients'], $user['server']);
                 $count++;
             }
         }
index d019be005b9925b292bb6ab19a093993e5ff6537..bc5093b9ad9fd76ab40460ff15eb9f37d839cab3 100644 (file)
@@ -58,11 +58,9 @@ class ZNCServer {
                        $exp2 = explode('</td>', $exp[2]);
                        $userdata['user'] = $exp2[0];
                        $exp2 = explode('</td>', $exp[3]);
-                       $userdata['clients'] = $exp2[0];
-                       $exp2 = explode('</td>', $exp[4]);
                        $userdata['server'] = $exp2[0];
-                       $exp2 = explode('</td>', $exp[5]);
-                       $userdata['nick'] = $exp2[0];
+                       $exp2 = explode('</td>', $exp[4]);
+                       $userdata['clients'] = $exp2[0];
                        $userlist[] = $userdata;
                }
                return $userlist;
@@ -106,7 +104,7 @@ class ZNCServer {
         $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,17 +112,55 @@ 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/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);
     }