+ $ret = $deluser['server']['conn']->simulZNC($deluser['user']['user'], $raw);
+ if($ret == ERR_MODULE_NOT_FOUND) {
+ error("send_raw module is not installed or not activated for user ".$deluser['server']['auser']." on ".$deluser['server']['name']);
+ } else {
+ echo "Simuled \002".$deluser['user']['user']."\002 on Server ".$deluser['server']['name'].": ".$raw."\n";
+ echo"/log\n";
+ }
+ }
+}
+
+//SUBCOMMAND: block
+function zncadmin_block() {
+ global $argv, $zncservers, $force;
+ $username = strtolower($argv[2]);
+ $server = strtolower($argv[3]);
+ if(!$username) {
+ error("missing username");
+ return;
+ }
+ $delusers = array();
+ 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']->login($zncserver['auser'], $zncserver['apass']);
+ foreach($zncserver['conn']->getUserList() as $user) {
+ if(strtolower($user['user']) == $username) {
+ $delusers[] = array("server" => $zncserver, "user" => $user);
+ }
+ }
+ }
+ if(count($delusers) > 1) {
+ error($argv[2]." exists on multiple servers! please add the server name the user should be blocked on.");
+ echo"Found User on following Servers:\n";
+ foreach($delusers as $server) {
+ echo "\002".$server['server']['name']."\002 Server: ".$server['user']['server']." Nick: ".$server['user']['nick']." Clients: ".$server['user']['clients']."\n";
+ }
+ } else if(count($delusers) == 0) {
+ error("Couldn't find an user called \002".$argv[2]."\002.");
+ } else if($delusers[0]['server']['protected'] && !$force) {
+ error("Access denied\n");
+ } else {
+ $deluser = $delusers[0];
+ $ret = $deluser['server']['conn']->blockZNC($deluser['user']['user'], true);
+ if($ret == ERR_MODULE_NOT_FOUND) {
+ error("blockuser module is not installed or not activated on ".$deluser['server']['name']);
+ } else {
+ echo "Blocked \002".$deluser['user']['user']."\002 on Server ".$deluser['server']['name'].".\n";
+ echo"/log\n";
+ }
+ }
+}
+
+//SUBCOMMAND: unblock
+function zncadmin_unblock() {
+ global $argv, $zncservers, $force;
+ $username = strtolower($argv[2]);
+ $server = strtolower($argv[3]);
+ if(!$username) {
+ error("missing username");
+ return;
+ }
+ $delusers = array();
+ 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']->login($zncserver['auser'], $zncserver['apass']);
+ foreach($zncserver['conn']->getUserList() as $user) {
+ if(strtolower($user['user']) == $username) {
+ $delusers[] = array("server" => $zncserver, "user" => $user);
+ }
+ }
+ }
+ if(count($delusers) > 1) {
+ error($argv[2]." exists on multiple servers! please add the server name the user should be unblocked on.");
+ echo"Found User on following Servers:\n";
+ foreach($delusers as $server) {
+ echo "\002".$server['server']['name']."\002 Server: ".$server['user']['server']." Nick: ".$server['user']['nick']." Clients: ".$server['user']['clients']."\n";
+ }
+ } else if(count($delusers) == 0) {
+ error("Couldn't find an user called \002".$argv[2]."\002.");
+ } else if($delusers[0]['server']['protected'] && !$force) {
+ error("Access denied\n");
+ } else {
+ $deluser = $delusers[0];
+ $ret = $deluser['server']['conn']->blockZNC($deluser['user']['user'], false);
+ if($ret == ERR_MODULE_NOT_FOUND) {
+ error("blockuser module is not installed or not activated on ".$deluser['server']['name']);
+ } else {
+ echo "Unblocked \002".$deluser['user']['user']."\002 on Server ".$deluser['server']['name'].".\n";
+ echo"/log\n";
+ }