diff --git a/admin.html b/admin.html index c10a6d5..0e878d0 100644 --- a/admin.html +++ b/admin.html @@ -650,11 +650,13 @@
- {{ ipRuleDialog.mode === 'create' ? '自动填充当前 IP,不可修改' : 'IP 地址不可修改' }} + {{ isAdmin && ipRuleDialog.mode === 'create' + ? '管理员可填写任意有效 IP' + : (ipRuleDialog.mode === 'create' ? '自动填充当前 IP,不可修改' : 'IP 地址不可修改') }}
@@ -1048,7 +1050,7 @@ submitIpRuleDialog: async function () { var form = this.ipRuleDialog.form; var ip = (form.ip || "").trim(); - if (!this.isAdmin || this.ipRuleDialog.mode === "create") { + if (!this.isAdmin) { ip = (this.clientIp || "").trim(); form.blocked = false; } diff --git a/src/admin-handlers.ts b/src/admin-handlers.ts index 3ba86f4..e4c719c 100644 --- a/src/admin-handlers.ts +++ b/src/admin-handlers.ts @@ -687,8 +687,7 @@ async function handleIpRules( } const rule = parseIpRuleBody(body); - const isCreate = body.mode === "create"; - if (!isAdminClient(clientReq) || isCreate) { + if (!isAdminClient(clientReq)) { rule.ip = resolveAdminClientIp(clientReq); } if (!canManageIpRule(clientReq, rule.ip)) {