forked from KeyAuth/KeyAuth-Source-Code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathblacklist.php
More file actions
102 lines (90 loc) · 3.81 KB
/
Copy pathblacklist.php
File metadata and controls
102 lines (90 loc) · 3.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
namespace misc\blacklist;
use misc\etc;
use misc\cache;
use misc\mysql;
function add($data, $type, $secret = null)
{
$data = etc\sanitize($data);
$type = etc\sanitize($type);
switch ($type) {
case 'IP Address':
$query = mysql\query("INSERT INTO `bans`(`ip`, `type`, `app`) VALUES (?, 'ip', ?)",[$data, $secret ?? $_SESSION['app'] ]);
cache\purgePattern('KeyAuthBlacklist:' . ($secret ?? $_SESSION['app']) . ':' . $data);
break;
case 'Hardware ID':
$query = mysql\query("INSERT INTO `bans`(`hwid`, `type`, `app`) VALUES (?, 'hwid', ?)",[$data, $secret ?? $_SESSION['app']]);
cache\purgePattern('KeyAuthBlacklist:' . ($secret ?? $_SESSION['app']) . ':*:' . $data);
break;
default:
return 'invalid';
}
if ($query->affected_rows > 0) {
if ($_SESSION['role'] == "seller" || !is_null($secret)) {
cache\purge('KeyAuthBlacks:' . ($secret ?? $_SESSION['app']));
}
return 'success';
} else {
return 'failure';
}
}
function deleteAll($secret = null)
{
$query = mysql\query("DELETE FROM `bans` WHERE `app` = ?",[$secret ?? $_SESSION['app']]);
if ($query->affected_rows > 0) {
cache\purgePattern('KeyAuthBlacklist:' . ($secret ?? $_SESSION['app']));
if ($_SESSION['role'] == "seller" || !is_null($secret)) {
cache\purge('KeyAuthBlacks:' . ($secret ?? $_SESSION['app']));
}
return 'success';
} else {
return 'failure';
}
}
function deleteSingular($blacklist, $type, $secret = null)
{
$blacklist = etc\sanitize($blacklist);
$type = etc\sanitize($type);
switch ($type) {
case 'ip':
$query = mysql\query("DELETE FROM `bans` WHERE `app` = ? AND `ip` = ?",[$secret ?? $_SESSION['app'], $blacklist]);
cache\purgePattern('KeyAuthBlacklist:' . ($secret ?? $_SESSION['app']) . ':' . $blacklist);
break;
case 'hwid':
$query = mysql\query("DELETE FROM `bans` WHERE `app` = ? AND `hwid` = ?",[$secret ?? $_SESSION['app'], $blacklist]);
cache\purgePattern('KeyAuthBlacklist:' . ($secret ?? $_SESSION['app']) . ':*:' . $blacklist);
break;
default:
return 'invalid';
}
if ($query->affected_rows > 0) {
if ($_SESSION['role'] == "seller" || !is_null($secret)) {
cache\purge('KeyAuthBlacks:' . ($secret ?? $_SESSION['app']));
}
return 'success';
} else {
return 'failure';
}
}
function addWhite($ip, $secret = null)
{
$ip = etc\sanitize($ip);
$query = mysql\query("INSERT INTO `whitelist`(`ip`, `app`) VALUES (?, ?)",[$ip, $secret ?? $_SESSION['app']]);
cache\purge('KeyAuthWhitelist:' . ($secret ?? $_SESSION['app']) . ':' . $ip);
if ($query->affected_rows > 0) {
return 'success';
} else {
return 'failure';
}
}
function deleteWhite($ip, $secret = null)
{
$ip = etc\sanitize($ip);
$query = mysql\query("DELETE FROM `whitelist` WHERE `app` = ? AND `ip` = ?",[$secret ?? $_SESSION['app'], $ip]);
cache\purge('KeyAuthWhitelist:' . ($secret ?? $_SESSION['app']) . ':' . $ip);
if ($query->affected_rows > 0) {
return 'success';
} else {
return 'failure';
}
}