From c15c97f69cdeb034fe90b6da9c139f3c8bcec22d Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 14 Dec 2010 22:14:29 +0000
Subject: [PATCH] put blacklist mode on form

---
 .../java/src/net/i2p/i2ptunnel/web/EditBean.java   |  8 ++++++--
 .../java/src/net/i2p/i2ptunnel/web/IndexBean.java  | 14 +++++++++++---
 apps/i2ptunnel/jsp/editServer.jsp                  | 13 +++++++------
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
index ebaeccf199..696c652e2a 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
@@ -171,8 +171,12 @@ public class EditBean extends IndexBean {
         return getProperty(tunnel, "i2cp.leaseSetKey", "");
     }
     
-    public boolean getAccess(int tunnel) {
-        return getBooleanProperty(tunnel, "i2cp.enableAccessList");
+    public String getAccessMode(int tunnel) {
+        if (getBooleanProperty(tunnel, PROP_ENABLE_ACCESS_LIST))
+            return "1";
+        if (getBooleanProperty(tunnel, PROP_ENABLE_BLACKLIST))
+            return "2";
+        return "0";
     }
     
     public String getAccessList(int tunnel) {
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
index 909e94c23e..510f550336 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
@@ -643,9 +643,17 @@ public class IndexBean {
     public void setEncrypt(String moo) {
         _booleanOptions.add("i2cp.encryptLeaseSet");
     }
-    public void setAccess(String moo) {
-        _booleanOptions.add("i2cp.enableAccessList");
+
+    protected static final String PROP_ENABLE_ACCESS_LIST = "i2cp.enableAccessList";
+    protected static final String PROP_ENABLE_BLACKLIST = "i2cp.enableBlackList";
+
+    public void setAccessMode(String val) {
+        if ("1".equals(val))
+            _booleanOptions.add(PROP_ENABLE_ACCESS_LIST);
+        else if ("2".equals(val))
+            _booleanOptions.add(PROP_ENABLE_BLACKLIST);
     }
+
     public void setDelayOpen(String moo) {
         _booleanOptions.add("i2cp.delayOpen");
     }
@@ -942,7 +950,7 @@ public class IndexBean {
         I2PTunnelHTTPClientBase.PROP_AUTH, I2PTunnelHTTPClientBase.PROP_OUTPROXY_AUTH
         };
     private static final String _booleanServerOpts[] = {
-        "i2cp.reduceOnIdle", "i2cp.encryptLeaseSet", "i2cp.enableAccessList"
+        "i2cp.reduceOnIdle", "i2cp.encryptLeaseSet", PROP_ENABLE_ACCESS_LIST, PROP_ENABLE_BLACKLIST
         };
     private static final String _otherClientOpts[] = {
         "i2cp.reduceIdleTime", "i2cp.reduceQuantity", "i2cp.closeIdleTime",
diff --git a/apps/i2ptunnel/jsp/editServer.jsp b/apps/i2ptunnel/jsp/editServer.jsp
index 4ecd93e648..5ad17a2efe 100644
--- a/apps/i2ptunnel/jsp/editServer.jsp
+++ b/apps/i2ptunnel/jsp/editServer.jsp
@@ -359,17 +359,18 @@
                 </label>
             </div>
             <div id="portField" class="rowItem">
-                <label for="access" accesskey="s">
-                    <%=intl._("Enable")%>:
-                </label>
-                <input value="1" type="checkbox" id="startOnLoad" name="access" title="Enable Access List"<%=(editBean.getAccess(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />                
+                <label><%=intl._("Disable")%></label>
+                <input value="0" type="radio" id="startOnLoad" name="accessMode" title="Allow all clients"<%=(editBean.getAccessMode(curTunnel).equals("0") ? " checked=\"checked\"" : "")%> class="tickbox" />                
+                <label><%=intl._("Whitelist")%></label>
+                <input value="1" type="radio" id="startOnLoad" name="accessMode" title="Allow listed clients only"<%=(editBean.getAccessMode(curTunnel).equals("1") ? " checked=\"checked\"" : "")%> class="tickbox" />                
+                <label><%=intl._("Blacklist")%></label>
+                <input value="2" type="radio" id="startOnLoad" name="accessMode" title="Reject listed clients"<%=(editBean.getAccessMode(curTunnel).equals("2") ? " checked=\"checked\"" : "")%> class="tickbox" />                
             </div>
             <div id="hostField" class="rowItem">
                 <label for="accessList" accesskey="s">
                     <%=intl._("Access List")%>:
                 </label>
-                <textarea rows="2" style="height: 6em;" cols="60" id="hostField" name="accessList" title="Access List" wrap="off"><%=editBean.getAccessList(curTunnel)%></textarea>               
-                <span class="comment"><%=intl._("(Restrict to these clients only)")%></span>
+                <textarea rows="2" style="height: 8em;" cols="60" id="hostField" name="accessList" title="Access List" wrap="off"><%=editBean.getAccessList(curTunnel)%></textarea>               
             </div>
                  
             <div class="subdivider">
-- 
GitLab