X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/dc961139b6abc47e087ec829b862cc07550329a9..3f487ee18009aa687a13899e8cf32596a892f9f1:/index.php diff --git a/index.php b/index.php index fbb29c8..aa3a265 100644 --- a/index.php +++ b/index.php @@ -26,7 +26,96 @@ require_once "Classes/class-rpc.php"; do_log($_POST); if (!empty($_POST)) { - if (!($bantype = $_POST['bantype'])) + + if ($sf = $_POST['sf_add']) // if it was a spamfilter entry + { + /* get targets */ + $targets = []; // empty arrae + foreach($_POST as $key => $value) + { + if (substr($key, 0, 7) == "target_") + $targets[] = str_replace(["target_", "_"], ["", "-"], $key); + } + if (empty($targets)) + Message::Fail("No target was specified"); + + if (!isset($_POST['sf_bantype'])) + Message::Fail("No action was chosen"); + + else + { + + $bantype = $_POST['sf_bantype']; + $targ_chars = ""; + foreach($targets as $targ) + { + switch ($targ) { + case "channel": + $targ_chars .= "c"; + break; + case "private": + $targ_chars .= "p"; + break; + case "channel-notice": + $targ_chars .= "N"; + break; + case "private-notice": + $targ_chars .= "n"; + break; + case "part": + $targ_chars .= "P"; + break; + case "quit": + $targ_chars .= "q"; + break; + case "dcc": + $targ_chars .= "d"; + break; + case "away": + $targ_chars .= "a"; + break; + case "topic": + $targ_chars .= "t"; + break; + case "messagetag": + $targ_chars .= "T"; + break; + case "user": + $targ_chars .= "u"; + break; + } + } + /* duplicate code for now [= */ + $banlen_w = (isset($_POST['banlen_w'])) ? $_POST['banlen_w'] : NULL; + $banlen_d = (isset($_POST['banlen_d'])) ? $_POST['banlen_d'] : NULL; + $banlen_h = (isset($_POST['banlen_h'])) ? $_POST['banlen_h'] : NULL; + $duration = ""; + if (!$banlen_d && !$banlen_h && !$banlen_w) + $duration .= "0"; + + else + { + if ($banlen_w) + $duration .= $banlen_w; + if ($banlen_d) + $duration .= $banlen_d; + if ($banlen_h) + $duration .= $banlen_h; + } + $match_type = $_POST['matchtype']; // should default to 'simple' + $reason = isset($_POST['ban_reason']) ? $_POST['ban_reason'] : "No reason"; + $soft = (isset($_POST['soft'])) ? true : false; + if ($soft) + $targ_chars = "%" . $targ_chars; + if ($rpc->spamfilter()->add($sf, $match_type, $targ_chars, $bantype, $duration, $reason)) + Message::Success("Added spamfilter entry \"$sf\" [match type: $match_type] [targets: $targ_chars] [reason: $reason]"); + else + Message::Fail("Could not add spamfilter entry \"$sf\" [match type: $match_type] [targets: $targ_chars] [reason: $reason]: $rpc->error"); + } + + } + + else if (!($bantype = $_POST['bantype'])) // if it was a ban entry { } else if (!($users = $_POST["userch"])) @@ -258,7 +347,7 @@ rpc_pop_lists(); echo "".$user->name.$isBot.''; echo "".$user->id.""; echo "".$user->hostname." (".$user->ip.")"; - $account = (isset($user->user->account)) ? $user->user->account : 'None'; + $account = (isset($user->user->account)) ? $user->user->account : 'None'; echo "".$account.""; $modes = (isset($user->user->modes)) ? "+" . $user->user->modes : ""; echo "".$modes.""; @@ -266,7 +355,7 @@ rpc_pop_lists(); if (!strlen($oper)) $oper = (strpos($user->user->modes, "S") !== false) ? 'Service' : ""; echo "".$oper.""; - $secure = (isset($user->tls)) ? "Secure" : "Insecure"; + $secure = (isset($user->tls)) ? "Secure" : "Insecure"; echo "".$secure.""; echo "".$user->user->servername.""; echo "".$user->user->reputation.""; @@ -467,6 +556,98 @@ rpc_pop_lists();

+
+ Add Spamfilter Entry +
+
+ +
+
Entry:

+
MatchType:

+
Action:

+ +
+ Channel messages
+
Private messages
+
Channel notices
+
Private notices
+
Part reason
+
DCC Filename
+
Away messages
+
Channel topic
+
MessageTags
+
Userhost (nick!user@host:realname)
+
+ + + +
+
+ Don't affect logged-in users (soft) +
+
+
Select all