Merge branch 'ZNCv1' into MixedVersions
[ZNCAdmin.git] / zncadmin.php
index 78937925953b5c40ba70e4cfc35f10bebecceef9..4949a10ccebc7022c73c737ac4b4c6c0877991ca 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++;
             }
         }
@@ -316,6 +316,10 @@ function zncadmin_add() {
     foreach($zncservers as $zncserver) {
         if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue;
         if(!$argv[3] && $zncserver['priority'] < $priority) continue;
+        if($zncserver['protected'] === true && !$force) {
+            error("Access denied\n");
+            return;
+        }
         $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
         $zncserver['users'] = $zncserver['conn']->getUserList();
@@ -359,12 +363,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.");
 }
@@ -558,8 +565,8 @@ 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;
@@ -572,7 +579,7 @@ function zncadmin_stats() {
             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) {