X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/54127577d714095c80015bce8280b4f701828d34..47aad98291fb8ad90cb308ba21fe73c7c7ccd843:/server-bans/ban-exceptions.php diff --git a/server-bans/ban-exceptions.php b/server-bans/ban-exceptions.php index ca1046d..6bd265b 100644 --- a/server-bans/ban-exceptions.php +++ b/server-bans/ban-exceptions.php @@ -1,7 +1,8 @@ $value) - { - $tok = split($value, ","); - $iphost = base64_decode($tok[0]); - $success = false; - $success = $rpc->serverbanexception()->delete($iphost); + if (!current_user_can(PERMISSION_BAN_EXCEPTION_DEL)) + Message::Fail("Could not delete ban exception(s): Permission denied"); + else + foreach ($_POST['tklch'] as $key => $value) + { + $tok = split($value, ","); + $iphost = base64_decode($tok[0]); + $success = false; + $success = $rpc->serverbanexception()->delete($iphost); - if ($success) - Message::Success("Ban Exception has been removed for $iphost"); - else - Message::Fail("Unable to remove Ban Exception on $iphost: $rpc->error"); - } + if ($success) + Message::Success("Ban Exception has been removed for $iphost"); + else + Message::Fail("Unable to remove Ban Exception on $iphost: $rpc->error"); + } } elseif (isset($_POST['tkl_add']) && !empty($_POST['tkl_add'])) { - if (!($iphost = $_POST['tkl_add'])) - Message::Fail("No mask was specified"); - - /* 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; - } - $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->serverbanexception()->add($iphost, $reason, $duration)) - Message::Success("Ban Exception set against \"$iphost\": $reason"); + if (!current_user_can(PERMISSION_BAN_EXCEPTION_ADD)) + Message::Fail("Could not add ban exception(s): Permission denied"); else - Message::Fail("Ban Exception could not be set against \"$iphost\": $rpc->error"); + { + if (!($iphost = $_POST['tkl_add'])) + Message::Fail("No mask was specified"); + + $bantypes = isset($_POST['bantype']) ? $_POST['bantype'] : ""; + $bantypes_dup = ""; + if (!empty($bantypes)) + foreach ($bantypes as $bt) + $bantypes_dup .= $bt; + $bantypes = $bantypes_dup; + /* 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; + } + $msg_msg = ($duration == "0" || $duration == "0w0d0h") ? "permanently" : "for " . rpc_convert_duration_string($duration); + $reason = (isset($_POST['ban_reason'])) ? $_POST['ban_reason'] : "No reason"; + + if (isset($_POST['soft'])) + $iphost = "%$iphost"; + if ($rpc->serverbanexception()->add($iphost, $bantypes, $reason, (($user = unreal_get_current_user())) ? $user->username : NULL, $duration)) + Message::Success("Ban Exception set against \"$iphost\": $reason"); + else + Message::Fail("Ban Exception could not be set against \"$iphost\": $rpc->error"); + } } elseif (isset($_POST['search_types']) && !empty($_POST['search_types'])) @@ -64,11 +81,11 @@ $ban_exceptions = $rpc->serverbanexception()->getAll();

Ban Exceptions Overview

Here is where you can make an exception to bans, that is, to make it so that the target mask is exempt from the ban types you specify.

-

- +