X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/76200e36b9dce259a825f751f5e33abab4be9a06..2697173721db10cd600539beed661a06bb9a3f2b:/Classes/class-rpc.php diff --git a/Classes/class-rpc.php b/Classes/class-rpc.php index 056e7a6..3823db6 100644 --- a/Classes/class-rpc.php +++ b/Classes/class-rpc.php @@ -1,29 +1,15 @@ body['method'] = $method; } function set_params(array $params) : void { + do_log("Set params:", $params); $this->body['params'] = $params; } @@ -110,6 +98,7 @@ class RPC function fetch_assoc() { + do_log("RPC::fetch_assoc()", $this->result); return json_decode($this->result, true); } @@ -218,6 +207,24 @@ function rpc_pop_lists() } +/** RPC TKL Add */ +function rpc_tkl_add($name, $type, $expiry, $reason) : bool +{ + $rpc = new RPC(); + $rpc->set_method("server_ban.add"); + $rpc->set_params(["name" => $name, "type" => $type, "reason" => $reason, "duration_string" => $expiry]); + $rpc->execute(); + $result = $rpc->fetch_assoc(); + if (isset($result['error'])) + { + $msg = "The $type could not be added: $name - ".$result['error']['message'] . " (" . $result['error']['code'] . ")"; + Message::Fail($msg); + return false; + } + return true; +} + + /** RPC TKL Delete */ function rpc_tkl_del($name, $type) : bool { @@ -225,9 +232,36 @@ function rpc_tkl_del($name, $type) : bool $rpc->set_method("server_ban.del"); $rpc->set_params(["name" => $name, "type" => $type]); $rpc->execute(); - foreach($rpc->fetch_assoc() as $r) + $result = $rpc->fetch_assoc(); + if (isset($result['error'])) + { + $msg = "The $type could not be deleted: $name - ".$result['error']['message'] . " (" . $result['error']['code'] . ")"; + Message::Fail($msg); + return false; + } + return true; +} + +/** RPC Spamfilter Delete + * + */ +function rpc_sf_del($name, $mtype, $targets, $action) : bool +{ + $rpc = new RPC(); + $rpc->set_method("spamfilter.del"); + $rpc->set_params(["name" => $name, "match_type" => $mtype, "spamfilter_targets" => $targets, "ban_action" => $action, "set_by" => "YoMama"]); + $rpc->execute(); + $result = $rpc->fetch_assoc(); + if (isset($result['error'])) + { + $msg = "The spamfilter entry could not be deleted: $name - ".$result['error']['message'] . " (" . $result['error']['code'] . ")"; + Message::Fail($msg); + return false; + } + else { - highlight_string(var_export($r, true)); + $r = $result['result']['tkl']; + Message::Success($r['name']." [type: ".$r['match_type']."] [targets: ".$r['spamfilter_targets']. "] [action: ".$r['ban_action']."] [reason: ".$r['reason']."] [set by: ".$r['set_by']."]"); } return true; } \ No newline at end of file