Guest User

Untitled

a guest
Jun 5th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.80 KB | None | 0 0
  1. function zncadmin_add() {
  2.     global $argv, $zncservers, $add_settings, $force;
  3.     $username = strtolower($argv[2]);
  4.     if(!$username) {
  5.         error("missing username");
  6.         return;
  7.     }
  8.     $addserv = array();
  9.     $priority = 1;
  10.     foreach($zncservers as $zncserver) {
  11.         if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue;
  12.         if(!$argv[3] && $zncserver['priority'] < $priority) continue;
  13.         $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
  14.         $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
  15.         $zncserver['users'] = $zncserver['conn']->getUserList();
  16.         $existing = false;
  17.         foreach($zncserver['users'] as $user) {
  18.             if(strtolower($user['user']) == $username) $existing = true;
  19.         }
  20.         if(!$existing && count($zncserver['users']) < $zncserver['maxznc']) {
  21.             if($zncserver['priority'] > $priority) {
  22.                 $priority = $zncserver['priority'];
  23.                 $addserv = array();
  24.             }
  25.             $addserv[] = $zncserver;
  26.         }
  27.     }
  28.     if(count($addserv) > 1) {
  29.         //select server with lowest user count
  30.         $usercount = count($addserv[0]['users']);
  31.         $selected = 0;
  32.         for($i = 1; $i < count($addserv); $i++) {
  33.             if(count($addserv[$i]['users']) < $usercount) {
  34.                 $usercount = count($addserv[$i]['users']);
  35.                 $selected = $i;
  36.             }
  37.         }
  38.         $addserv = $addserv[$selected];
  39.     } else if(count($addserv) == 0) {
  40.         error("Couldn't find a server the user could be added to.");
  41.         return;
  42.     } else if($addserv[0]['server']['protected'] && !$force) {
  43.         error("Access denied\n");
  44.     } else {
  45.         $addserv = $addserv[0];
  46.     }
  47.     $password = generate_password();
  48.     $settings = array();
  49.     $settings['nick'] = $argv[2];
  50.     $settings['altnick'] = $argv[2]."`";
  51.     $settings['ident'] = $username;
  52.     $ret = $addserv['conn']->addZNC($argv[2], $password, $settings, $add_settings['servers'], $add_settings['modules'], $add_settings['other']);
  53.     if($ret) {
  54.         echo "Added user ".$argv[2]." to Server ".$addserv['name'].".\n";
  55.         echo "  Server Host: ".$addserv['public']."  Port: ".$addserv['port']."  SSL Port: ".$addserv['sslport']."\n";
  56.         echo "  Password: ".$password."\n";
  57.         echo "[mIRC]\n";
  58.         echo " /server -a ".$addserv['public']." -p ".$addserv['port']." -g KryptonZNC -w ".$argv[2].":".$password." -d KryptonZNC\n";
  59.         echo " /AS addmask *@*.free-bnc.de\n";
  60.         echo " /AS addmask *@*.krypton-bouncer.de\n";
  61.         echo " /server -m KryptonZNC\n";
  62.         echo"/log\n";
  63.         $addserv['conn']->addChan($argv[2], "#Krypton");
  64.     } else
  65.         error("Error while adding user.");
  66. }
Add Comment
Please, Sign In to add comment