X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/896b6cdc0f8cf24d11bec79b2894538eee5c9cba..03ddd26b2c98cde7754ffc50dacf4897683c57a7:/index.php diff --git a/index.php b/index.php index d0453d1..aac570f 100644 --- a/index.php +++ b/index.php @@ -1,9 +1,10 @@ - - +UnrealIRCd Panel + + +
-

UnrealIRCd Administration Panel


-
+

UnrealIRCd Administration Panel

Overview @@ -11,29 +12,95 @@ Channels Server Bans Spamfilter + News
set_method("user.get"); + $rpc->set_params(["nick" => "$user"]); + $rpc->execute(); + $nick = ($rpc->result) ? $rpc->fetch_assoc() : NULL; + if (!$nick) + { + Message::Fail("Could not find that user. Maybe they disconnected after you clicked this?"); + return; + } + + $msg_msg = ($duration == "0" || $duration == "0w0d0h") ? "permanently" : "for ".rpc_convert_duration_string($duration); + $reason = (isset($_POST['ban_reason'])) ? $_POST['ban_reason'] : "No reason"; + if (rpc_tkl_add($user, $bantype, $duration, $reason)) + { + $c = $nick['result']['client']; + Message::Success($c['name'] . " (*@".$c['hostname'].") has been $bantype" . "d $msg_msg: $reason"); + } + } + } + + if (!empty($_POST['tklch'])) + foreach ($_POST as $key => $value) { + foreach ($value as $tok) { + $tok = explode(",", $tok); + if (rpc_tkl_del(base64_decode($tok[0]), base64_decode($tok[1]))) + Message::Success(base64_decode($tok[1])." has been removed for ".base64_decode($tok[0])); + } + } + + if (!empty($_POST['sf'])) + foreach ($_POST as $key => $value) { + foreach ($value as $tok) { + $tok = explode(",", $tok); + rpc_sf_del(base64_decode($tok[0]), base64_decode($tok[1]), base64_decode($tok[2]), base64_decode($tok[3])); + } + } +} + +rpc_pop_lists(); ?>
-

Your shiny IRC overview

@@ -44,41 +111,300 @@ rpc_pop_lists(); // populate our static lists (users, channels, tkl, spamfilter)
Chat Overview
Users
Server bans
Spamfilter entries
+ +
+
+ + + + + + + +
Filter by: +
+ Nick: + +
+
+
+ Hostname: + +
+
+
+ IP: + +
+
+
+ Account: + +
+
+ -
-

+ if (isset($_POST['uf_ip']) && strlen($_POST['uf_ip'])) + Message::Info("Listing users which match IP: \"" . $_POST['uf_ip'] . "\""); + + if (isset($_POST['uf_host']) && strlen($_POST['uf_host'])) + Message::Info("Listing users which match hostmask: \"" . $_POST['uf_host'] . "\""); + + if (isset($_POST['uf_account']) && strlen($_POST['uf_account'])) + Message::Info("Listing users which match account: \"" . $_POST['uf_account'] . "\""); + + ?> + - + - + - + + name), strtolower($_POST['uf_nick'])) !== 0 && + strpos(strtolower($user->name), strtolower($_POST['uf_nick'])) == false) + continue; + + /* Some basic filtering for HOST */ + if (isset($_POST['uf_host']) && strlen($_POST['uf_host']) && + strpos(strtolower($user->hostname), strtolower($_POST['uf_host'])) !== 0 && + strpos(strtolower($user->hostname), strtolower($_POST['uf_host'])) == false) + continue; + + /* Some basic filtering for IP */ + if (isset($_POST['uf_ip']) && strlen($_POST['uf_ip']) && + strpos(strtolower($user->ip), strtolower($_POST['uf_ip'])) !== 0 && + strpos(strtolower($user->ip), strtolower($_POST['uf_ip'])) == false) + continue; + + /* Some basic filtering for ACCOUNT */ + if (isset($_POST['uf_account']) && strlen($_POST['uf_account']) && + strpos(strtolower($user->user->account), strtolower($_POST['uf_account'])) !== 0 && + strpos(strtolower($user->user->account), strtolower($_POST['uf_account'])) == false) + continue; + echo ""; - echo ""; - echo ""; - echo ""; - $account = (isset($user['account'])) ? $user['account'] : ""; + echo ""; + $isBot = (strpos($user->user->modes, "B") !== false) ? ' Bot' : ""; + echo "'; + echo ""; + echo ""; + $account = (isset($user->user->account)) ? ''.$user->user->account.'' : 'None'; echo ""; - $modes = (isset($user['user']['modes'])) ? "+" . $user['user']['modes'] : ""; + $modes = (isset($user->user->modes)) ? "+" . $user->user->modes : ""; echo ""; - $oper = (isset($user['user']['operlogin'])) ? $user['user']['operlogin']." (".$user['user']['operclass'].")" : ""; + $oper = (isset($user->user->operlogin)) ? ''.$user->user->operlogin."".$user->user->operclass."" : ""; + if (!strlen($oper)) + $oper = (strpos($user->user->modes, "S") !== false) ? 'Service' : ""; echo ""; - $secure = (isset($user['tls'])) ? "✅" : "❌"; + $secure = (isset($user->tls)) ? "Secure" : "Insecure"; echo ""; - echo ""; - echo ""; + echo ""; + echo ""; } - ?> + ?>
Select all Nick UIDIP/HostHost / IP AccountUsermodesUsermodesℹ️ Oper Secure Connected toReputation ℹ️Reputation ℹ️
".$user['name']."".$user['id']."".$user['hostname']." (".$user['ip'].")".$user->name.$isBot.'".$user->id."".$user->hostname." (".$user->ip.")".$account."".$modes." ".$oper."".$secure."".$user['user']['servername']."".$user['user']['reputation']."".$user->user->servername."".$user->user->reputation."
+
+ +
+
+ + + +
+
+ + + +
+ +
+
+

+ + + + + + + + + "; + echo ""; + echo ""; + echo ""; + $topic = (isset($channel->topic)) ? $channel->topic : ""; + echo ""; + $setby = (isset($channel->topic)) ? "By ".$channel->topic_set_by .", at ".$channel->topic_set_at : ""; + echo ""; + $modes = (isset($channel->modes)) ? "+" . $channel->modes : ""; + echo ""; + } + ?>
NameCreatedUser countTopicTopic SetModes".$channel->name."".$channel->creation_time."".$channel->num_users."".$topic."".$setby."".$modes."
- - \ No newline at end of file +
+
+ + + + + + + + + + + + + "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + ?>
Select allMaskTypeSet BySet OnExpiresDurationReason".$tkl->name."".$tkl->type_string."".$tkl->set_by."".$tkl->set_at_string."".$tkl->expire_at_string."".$tkl->duration_string."".$tkl->reason."

+ + +
+
+

+ + + + + + + + + + + + + + + + "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + for ($i = 0, $targs = ""; $i < strlen($sf->spamfilter_targets); $i++) + { + $c = $sf->spamfilter_targets[$i]; + if ($c == "c") + $targs .= "Channel, "; + else if ($c == "p") + $targs .= "Private,"; + else if ($c == "n") + $targs .= "Notice, "; + else if ($c == "N") + $targs .= "Channel notice, "; + else if ($c == "P") + $targs .= "Part message, "; + else if ($c == "q") + $targs .= "Quit message, "; + else if ($c == "d") + $targs .= "DCC filename, "; + else if ($c == "a") + $targs .= "Away message, "; + else if ($c == "t") + $targs .= "Channel topic, "; + else if ($c == "T") + $targs .= "MessageTag, "; + else if ($c == "u") + $targs .= "Usermask, "; + } + $targs = rtrim($targs,", "); + echo ""; + echo ""; + + } + ?>
Select allMaskTypeSet BySet OnExpiresDurationMatch TypeActionAction DurationTargetReason".$sf->name."".$sf->type_string."".$sf->set_by."".$sf->set_at_string."".$sf->expire_at_string."".$sf->duration_string."".$sf->match_type."".$sf->ban_action."".$sf->ban_duration_string."".$targs."".$sf->reason."

+ + + +
+
+ + +
+ +