Skip to content

Commit

Permalink
#335 Add banlist for users to TS3
Browse files Browse the repository at this point in the history
  • Loading branch information
ulrichblock committed Feb 15, 2014
1 parent 6ae3c19 commit b8be898
Show file tree
Hide file tree
Showing 13 changed files with 389 additions and 26 deletions.
11 changes: 11 additions & 0 deletions web/languages/default/de/voice.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
<backup>Backup</backup>
<backups>Backups</backups>
<backupname>Backupname</backupname>
<ban>Bannen</ban>
<banAdd>Bann hinzufügen</banAdd>
<banErrorData>Kann Daten nicht für einen Bann verwenden</banErrorData>
<banList>Bann Liste</banList>
<banReason>Banngrund</banReason>
<banTime>Banndauer</banTime>
<banType>Bann Typ</banType>
<blocked>Geblockt</blocked>
<date>Datum</date>
<defaultdns>Standard TSDNS</defaultdns>
<defaulthostbanner_gfx_url>Standard Hostbanner GFX URL</defaulthostbanner_gfx_url>
Expand All @@ -21,6 +29,8 @@
<description>Beschreibung</description>
<dns>Aktueller TSDNS</dns>
<dnsError>Server DNS nicht erlaubt</dnsError>
<duration>Dauer</duration>
<ends>Endet</ends>
<enter>Eingabe</enter>
<externalDefaultDNS>Externe default TSDNS nutzen</externalDefaultDNS>
<filetransferport>Filetransferport</filetransferport>
Expand Down Expand Up @@ -73,6 +83,7 @@
<recover>Wiederherstellen</recover>
<reset>Reset</reset>
<rootserver>Rootserver</rootserver>
<seconds>Sekunden</seconds>
<server>Server</server>
<serverdir>Pfad zum Server</serverdir>
<slots>Serverslots</slots>
Expand Down
11 changes: 11 additions & 0 deletions web/languages/default/dk/voice.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
<backup>Sikkerhedskopi</backup>
<backups>Sikkerhedskopi</backups>
<backupname>Backupnavn</backupname>
<ban>Ban</ban>
<banAdd>Add ban</banAdd>
<banList>Banlist</banList>
<banErrorData>Cannot use this data for a ban</banErrorData>
<banReason>Banreason</banReason>
<banTime>Ban time</banTime>
<banType>Bann type</banType>
<blocked>Blocked</blocked>
<date>Dato</date>
<defaultdns>Standard TSDNS</defaultdns>
<defaulthostbanner_gfx_url>Standard Hostbanner GFX URL</defaulthostbanner_gfx_url>
Expand All @@ -21,6 +29,8 @@
<description>Beskrivelse</description>
<dns>Server TSDNS</dns>
<dnsError>Server TSDNS ikke tilladt</dnsError>
<duration>Duration</duration>
<ends>Ends</ends>
<enter>Indtaste</enter>
<externalDefaultDNS>Brug eksterne standard TSDNS</externalDefaultDNS>
<filetransferport>File Transfer Port</filetransferport>
Expand Down Expand Up @@ -65,6 +75,7 @@
<reset>Nulstil</reset>
<rootserver>Rootserver</rootserver>
<server>Server</server>
<seconds>Seconds</seconds>
<serverdir>Sti til server</serverdir>
<slots>Serverslots</slots>
<ssh_ip>SSH IP</ssh_ip>
Expand Down
11 changes: 11 additions & 0 deletions web/languages/default/uk/voice.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
<backup>Backup</backup>
<backups>Backups</backups>
<backupname>Backupname</backupname>
<banAdd>Add ban</banAdd>
<ban>Ban</ban>
<banList>Banlist</banList>
<banReason>Banreason</banReason>
<banErrorData>Cannot use this data for a ban</banErrorData>
<banTime>Ban time</banTime>
<banType>Bann type</banType>
<blocked>Blocked</blocked>
<date>Datum</date>
<defaultdns>Default TSDNS</defaultdns>
<defaulthostbanner_gfx_url>Default Hostbanner GFX URL</defaulthostbanner_gfx_url>
Expand All @@ -21,6 +29,8 @@
<description>Description</description>
<dns>Strøm TSDNS</dns>
<dnsError>Server TSDNS not allowed</dnsError>
<duration>Duration</duration>
<ends>Ends</ends>
<enter>enter</enter>
<externalDefaultDNS>Use external default TSDNS</externalDefaultDNS>
<filetransferport>Filetransferport</filetransferport>
Expand Down Expand Up @@ -73,6 +83,7 @@
<recover>Recover</recover>
<reset>Reset</reset>
<rootserver>Rootserver</rootserver>
<seconds>Seconds</seconds>
<server>Server</server>
<serverdir>Path to server</serverdir>
<slots>Serverslots</slots>
Expand Down
19 changes: 12 additions & 7 deletions web/serverlog.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,18 @@
if (!isset($user_id) and !isset($admin_id)) {
header('Location: login.php');
die('Please allow redirection');
}
}

if (isset($resellerLockupID)) {
$reseller_id = $resellerLockupID;
}

if ($ui->id('id', 10, 'get')) {

if (isset($admin_id)) {

$query = $sql->prepare("SELECT u.`id`,u.`cname` FROM `gsswitch` g LEFT JOIN `userdata` u ON g.`userid`=u.`id` WHERE g.`id`=? AND g.`resellerid`=? LIMIT 1");
$query->execute(array($ui->id('id', 10, 'get'), $resellerLockupID));
$query->execute(array($ui->id('id', 10, 'get'), $reseller_id));
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$username = $row['cname'];
$user_id = $row['id'];
Expand All @@ -64,7 +69,7 @@
}

$query = $sql->prepare("SELECT g.`id`,g.`newlayout`,g.`rootID`,g.`serverip`,g.`port`,g.`protected`,AES_DECRYPT(g.`ftppassword`,?) AS `dftppass`,AES_DECRYPT(g.`ppassword`,?) AS `decryptedftppass`,s.`servertemplate`,t.`binarydir`,t.`shorten` FROM `gsswitch` g LEFT JOIN `serverlist` s ON g.`serverid`=s.`id` LEFT JOIN `servertypes` t ON s.`servertype`=t.`id` WHERE g.`id`=? AND g.`userid`=? AND g.`resellerid`=? LIMIT 1");
$query->execute(array($aeskey, $aeskey, $ui->id('id', 10, 'get'), $user_id, $resellerLockupID));
$query->execute(array($aeskey, $aeskey, $ui->id('id', 10, 'get'), $user_id, $reseller_id));
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$protected = $row['protected'];
$servertemplate = $row['servertemplate'];
Expand Down Expand Up @@ -94,7 +99,7 @@
if (isset($rootID)) {

$query = $sql->prepare("SELECT `ip`,`ftpport` FROM `rserverdata` WHERE `id`=? AND `resellerid`=? LIMIT 1");
$query->execute(array($rootID, $resellerLockupID));
$query->execute(array($rootID, $reseller_id));
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {

$ftpport = $row['ftpport'];
Expand All @@ -115,19 +120,19 @@

}

if (isset($ftpConnect)) {
if (isset($ip)) {

echo (isset($error)) ? $error : '<html><head><title>' . $ewCfg['title'] . ' ' . $serverip .':' . $port . '</title><meta http-equiv="refresh" content="3"></head><body>' . nl2br($ftpConnect->getTempFileContent()) . '</body></html>';

$ftpConnect->tempHandle = null;
$ftpConnect = null;

} else {
echo 'Error: ID';
echo 'Error: wrong rootID';
}

} else {
echo 'Error: ID';
echo 'Error: No rootID';
}
}
$sql = null;
7 changes: 4 additions & 3 deletions web/statuscheck.php
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,7 @@
}

$newtraffic = 0;
$addedtraffic = 0;

if ($newtrafficdata > $lastfiletraffic) {
$addedtraffic = $newtrafficdata - $lastfiletraffic;
Expand All @@ -822,7 +823,7 @@
$newtraffic = $filetraffic;
} else if ($newtrafficdata < $lastfiletraffic) {
$addedtraffic = $newtrafficdata;
$newtraffic = $filetraffic+$addedtraffic;
$newtraffic = $filetraffic + $addedtraffic;
}

$newtrafficmb = round($newtraffic / 1024);
Expand Down Expand Up @@ -1022,8 +1023,8 @@
$connection->StopServer($virtualserver_id);
}
}
$query = $sql->prepare("INSERT INTO `voice_server_stats` (`sid`,`mid`,`installed`,`used`,`date`,`uid`,`resellerid`) VALUES (?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE `used`=(`used`*(`count`/(`count`+1))+(VALUES(`used`)*(1/(`count`+1)))),`installed`=(`installed`*(`count`/(`count`+1))+(VALUES(`installed`)*(1/(`count`+1)))),`count`=`count`+1");
$query->execute(array($ts3id, $ts3masterid, $server['virtualserver_maxclients'], $usedslots, $dayAndZeroHour, $userid, $resellerid));
$query = $sql->prepare("INSERT INTO `voice_server_stats` (`sid`,`mid`,`installed`,`used`,`traffic`,`date`,`uid`,`resellerid`) VALUES (?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE `traffic`=`traffic`+VALUES(`traffic`),`used`=(`used`*(`count`/(`count`+1))+(VALUES(`used`)*(1/(`count`+1)))),`installed`=(`installed`*(`count`/(`count`+1))+(VALUES(`installed`)*(1/(`count`+1)))),`count`=`count`+1");
$query->execute(array($ts3id, $ts3masterid, $server['virtualserver_maxclients'], $usedslots, $addedtraffic, $dayAndZeroHour, $userid, $resellerid));
} else if (isset($ts3id)) {
$uptime = 1;
$usedslots = 0;
Expand Down
94 changes: 92 additions & 2 deletions web/stuff/class_ts3.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class TS3 {

public $errorcode = false, $socketConnected = false;

private function ReplaceToTS3 ($value) {
public function ReplaceToTS3 ($value) {
$return = str_replace(array('\\', '/', ' ', '|'), array('\\\\', '\/', '\s', '\p'), $value);
return $return;
}
Expand Down Expand Up @@ -930,7 +930,7 @@ public function channelList($virtualserver_id) {
}
}

$return=json_encode($channels);
$return = json_encode($channels);

} else {
$return = $useserver;
Expand All @@ -939,4 +939,94 @@ public function channelList($virtualserver_id) {
return $return;

}

public function getClientList ($virtualserver_id) {

$useserver = $this->UseServer($virtualserver_id);

if (isset($useserver[0]['msg']) and strtolower($useserver[0]['msg']) == 'ok') {

$returnRaw = $this->SendCommand('clientlist client_type=0');

if (is_array($returnRaw)) {

$return = array();

foreach ($returnRaw as $row) {
if ($row['client_type'] == 0) {
$return[] = array('cid' => $row['cid'], 'clid' => $row['clid'], 'client_nickname' => $row['client_nickname']);
}
}

return $return;
}

}

return array();
}

public function banList ($virtualserver_id) {

$useserver = $this->UseServer($virtualserver_id);

if (isset($useserver[0]['msg']) and strtolower($useserver[0]['msg']) == 'ok') {

$rawReturn = $this->SendCommand('banlist');

if (is_array($rawReturn)) {

$return = array();

foreach ($rawReturn as $r) {
if (isset($r['banid'])) {
$return[$r['banid']] = array('ip' => $r['ip'], 'name' => $r['name'], 'lastnickname' => $r['lastnickname'], 'blocked' => $r['enforcements'], 'duration' => $r['duration'], 'ends' => date('Y-m-d H:m:s', ($r['created'] + $r['duration'])));
}
}

return $return;

}

}

return array();

}

public function banAdd ($virtualserver_id, $cmd) {

$useserver = $this->UseServer($virtualserver_id);

if (isset($useserver[0]['msg']) and strtolower($useserver[0]['msg']) == 'ok') {
return $this->SendCommand($cmd);
}

return false;

}

public function banDel ($virtualserver_id, $bandID) {

$useserver = $this->UseServer($virtualserver_id);

if (isset($useserver[0]['msg']) and strtolower($useserver[0]['msg']) == 'ok') {
return $this->SendCommand('bandel banid=' . $bandID);
}

return false;

}

public function clientKick ($virtualserver_id, $userID) {

$useserver = $this->UseServer($virtualserver_id);

if (isset($useserver[0]['msg']) and strtolower($useserver[0]['msg']) == 'ok') {
return $this->SendCommand('clientkick clid=' . $userID . ' reasonid=5');
}

return false;
}

}
2 changes: 2 additions & 0 deletions web/stuff/tables_add.php
Original file line number Diff line number Diff line change
Expand Up @@ -1482,6 +1482,7 @@
`mid` int(10) unsigned NOT NULL,
`installed` decimal(6,2) unsigned NOT NULL,
`used` decimal(6,2) unsigned NOT NULL,
`traffic` bigint(19) unsigned NOT NULL,
`date` datetime DEFAULT NULL,
`uid` int(10) unsigned DEFAULT NULL,
`count` bigint(19) unsigned DEFAULT 0,
Expand All @@ -1496,6 +1497,7 @@
`mid` int(10) unsigned NOT NULL,
`installed` decimal(6,2) unsigned NOT NULL,
`used` decimal(6,2) unsigned NOT NULL,
`traffic` bigint(19) unsigned NOT NULL,
`date` datetime DEFAULT NULL,
`uid` int(10) unsigned DEFAULT NULL,
`count` bigint(19) unsigned DEFAULT 0,
Expand Down
2 changes: 2 additions & 0 deletions web/stuff/tables_repair.php
Original file line number Diff line number Diff line change
Expand Up @@ -1224,6 +1224,7 @@
'mid' => array("Type"=>"int(10) unsigned","Null"=>"NO","Key"=>"MUL","Default"=>"","Extra"=>""),
'installed' => array("Type"=>"decimal(6,2) unsigned","Null"=>"NO","Key"=>"","Default"=>"","Extra"=>""),
'used' => array("Type"=>"decimal(6,2) unsigned","Null"=>"NO","Key"=>"","Default"=>"","Extra"=>""),
'traffic' => array("Type"=>"bigint(19) unsigned","Null"=>"NO","Key"=>"","Default"=>"","Extra"=>""),
'uid' => array("Type"=>"int(10) unsigned","Null"=>"YES","Key"=>"MUL","Default"=>"","Extra"=>""),
'count' => array("Type"=>"bigint(19) unsigned","Null"=>"YES","Key"=>"","Default"=>"1","Extra"=>""),
'resellerid' => array("Type"=>"int(10) unsigned","Null"=>"YES","Key"=>"MUL","Default"=>"0","Extra"=>"")
Expand All @@ -1234,6 +1235,7 @@
'mid' => array("Type"=>"int(10) unsigned","Null"=>"NO","Key"=>"MUL","Default"=>"","Extra"=>""),
'installed' => array("Type"=>"decimal(6,2) unsigned","Null"=>"NO","Key"=>"","Default"=>"","Extra"=>""),
'used' => array("Type"=>"decimal(6,2) unsigned","Null"=>"NO","Key"=>"","Default"=>"","Extra"=>""),
'traffic' => array("Type"=>"bigint(19) unsigned","Null"=>"NO","Key"=>"","Default"=>"","Extra"=>""),
'uid' => array("Type"=>"int(10) unsigned","Null"=>"YES","Key"=>"MUL","Default"=>"","Extra"=>""),
'count' => array("Type"=>"bigint(19) unsigned","Null"=>"YES","Key"=>"","Default"=>"1","Extra"=>""),
'resellerid' => array("Type"=>"int(10) unsigned","Null"=>"YES","Key"=>"MUL","Default"=>"0","Extra"=>"")
Expand Down
10 changes: 5 additions & 5 deletions web/stuff/userpanel_gserver.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,11 @@
include(EASYWIDIR . '/stuff/functions_ssh_exec.php');
include(EASYWIDIR . '/stuff/keyphrasefile.php');

$sprache = getlanguagefile('gserver',$user_language,$reseller_id);
if (isset($resellerLockupID)) {
$reseller_id = $resellerLockupID;
}

$sprache = getlanguagefile('gserver', $user_language, $reseller_id);
$loguserid = $user_id;
$logusername = getusername($user_id);
$logusertype = 'user';
Expand All @@ -59,10 +63,6 @@
$logsubuser = 0;
}

if (isset($resellerLockupID)) {
$reseller_id = $resellerLockupID;
}

if ($ui->w('action', 4, 'post') and !token(true)) {
$template_file = $spracheResponse->token;

Expand Down
Loading

0 comments on commit b8be898

Please sign in to comment.