Merge branch 'MixedVersions'
[ZNCAdmin.git] / zncadmin.php
index 78937925953b5c40ba70e4cfc35f10bebecceef9..5b63e1e497b8e67f02a5b4b46c4b68649db02458 100644 (file)
@@ -159,10 +159,10 @@ 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']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getUserList() as $user) {
             $skip = false;
@@ -209,7 +209,13 @@ 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']);
+                $extra = "";
+                if(isset($user['nick'])) {
+                    if($extra != "")
+                        $extra .= ", ";
+                    $extra .= "Nick: ".$user['nick'];
+                }
+                $table->add($zncserver['name'], $user['user'], $user['clients'], $user['server'], $extra);
                 $count++;
             }
         }
@@ -247,7 +253,7 @@ function zncadmin_seen() {
     $table->add("Server", "User", "Seen", "Info");
     $found = false;
     foreach($zncservers as $zncserver) {
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getSeenList() as $user) {
             if(preg_match("#^".$mask."$#i", $user['user']) && (($over_time && $user['seen_unix'] < $time) || (!$over_time && $user['seen_unix'] > $time))) {
@@ -277,7 +283,7 @@ function zncadmin_del() {
     foreach($zncservers as $zncserver) {
         if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue;
         if($username == strtolower($zncserver['auser'])) continue;
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getUserList() as $user) {
             if(strtolower($user['user']) == $username) {
@@ -316,7 +322,11 @@ function zncadmin_add() {
     foreach($zncservers as $zncserver) {
         if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue;
         if(!$argv[3] && $zncserver['priority'] < $priority) continue;
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        if($zncserver['protected'] === true && !$force) {
+            error("Access denied\n");
+            return;
+        }
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         $zncserver['users'] = $zncserver['conn']->getUserList();
         $existing = false;
@@ -359,12 +369,15 @@ function zncadmin_add() {
         echo "  Server Host: ".$addserv['public']."  Port: ".$addserv['port']."  SSL Port: ".$addserv['sslport']."\n";
         echo "  Password: ".$password."\n";
         echo "[mIRC]\n";
-        echo " /server -a ".$addserv['public']." -p ".$addserv['port']." -g KryptonZNC -w ".$argv[2].":".$password." -d KryptonZNC\n";
-        echo " /AS addmask *@*.free-bnc.de\n";
-        echo " /AS addmask *@*.krypton-bouncer.de\n";
-        echo " /server -m KryptonZNC\n";
+        echo " /server -a ".$addserv['public']." -p ".$addserv['port']." -g ".$add_settings['mirccmds']['groupname']." -w ".$argv[2].":".$password." -d ".$add_settings['mirccmds']['groupname']."\n";
+        foreach($add_settings['mirccmds']['hosts'] AS $host) {
+            echo " /AS addmask *@*.".$host."\n";
+        }
+        echo " /server -m ".$add_settings['mirccmds']['groupname']."\n";
         echo"/log\n";
-        $addserv['conn']->addChan($argv[2], "#Krypton");
+        foreach($add_settings["channel"] AS $channel) {
+            $addserv['conn']->addChan($argv[2], $channel);
+        }
     } else
         error("Error while adding user.");
 }
@@ -381,7 +394,7 @@ function zncadmin_resetpass() {
     foreach($zncservers as $zncserver) {
         if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue;
         if($username == strtolower($zncserver['auser'])) continue;
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getUserList() as $user) {
             if(strtolower($user['user']) == $username) {
@@ -439,7 +452,7 @@ function zncadmin_simul() {
     foreach($zncservers as $zncserver) {
         if($server && (strtolower($server) != strtolower($zncserver['name']))) continue;
         if($username == strtolower($zncserver['auser'])) continue;
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getUserList() as $user) {
             if(strtolower($user['user']) == $username) {
@@ -482,7 +495,7 @@ function zncadmin_block() {
     foreach($zncservers as $zncserver) {
         if($server && (strtolower($server) != strtolower($zncserver['name']))) continue;
         if($username == strtolower($zncserver['auser'])) continue;
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getUserList() as $user) {
             if(strtolower($user['user']) == $username) {
@@ -525,7 +538,7 @@ function zncadmin_unblock() {
     foreach($zncservers as $zncserver) {
         if($server && (strtolower($server) != strtolower($zncserver['name']))) continue;
         if($username == strtolower($zncserver['auser'])) continue;
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getUserList() as $user) {
             if(strtolower($user['user']) == $username) {
@@ -558,21 +571,21 @@ function zncadmin_unblock() {
 //SUBCOMMAND: stats
 function zncadmin_stats() {
     global $argv, $zncservers;
-    $table = new Table(5);
-    $table->add("Server", "Port / SSL Port", "Total ZNC's", "Connected (IRC)", "Online (User)");
+    $table = new Table(6);
+    $table->add("Server", "Port / SSL Port", "Total ZNC's", "Connected (IRC)", "Online (User)", "Protected?");
     $count = 0;
     foreach($zncservers as $zncserver) {
         $total = 0;
         $connected = 0;
         $online = 0;
-        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
+        $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL));
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         foreach($zncserver['conn']->getUserList() as $user) {
             if($user['server'] != "-N/A-") $connected++;
             if($user['clients'] > 0) $online++;
             $total++;
         }
-        $table->add($zncserver['name'], $zncserver['port'].($zncserver['sslport'] ? "/".$zncserver['sslport'] : ""), $total.($zncserver['maxznc'] ? "/".$zncserver['maxznc'] : ""), $connected, $online);
+        $table->add($zncserver['name'], $zncserver['port'].($zncserver['sslport'] ? "/".$zncserver['sslport'] : ""), $total.($zncserver['maxznc'] ? "/".$zncserver['maxznc'] : ""), $connected, $online, ($zncserver['protected'] === true ? "X" : ""));
         $count++;
     }
     if($count) {