From 922af0c6ccb37071d1928d12e40aedd15511769a Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Mon, 11 Apr 2011 11:27:55 +0200 Subject: [PATCH] Add option to require full access FCP connections to change data. --- .../java/net/pterodactylus/sone/core/Core.java | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 1aba559..1860473 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -1707,6 +1707,7 @@ public class Core implements IdentityListener, UpdateListener { configuration.getIntValue("Option/NegativeTrust").setValue(options.getIntegerOption("NegativeTrust").getReal()); configuration.getStringValue("Option/TrustComment").setValue(options.getStringOption("TrustComment").getReal()); configuration.getBooleanValue("Option/ActivateFcpInterface").setValue(options.getBooleanOption("ActivateFcpInterface").getReal()); + configuration.getBooleanValue("Option/FcpWriteFromFullAccessOnly").setValue(options.getBooleanOption("FcpWriteFromFullAccessOnly").getReal()); configuration.getBooleanValue("Option/SoneRescueMode").setValue(options.getBooleanOption("SoneRescueMode").getReal()); configuration.getBooleanValue("Option/ClearOnNextRestart").setValue(options.getBooleanOption("ClearOnNextRestart").getReal()); configuration.getBooleanValue("Option/ReallyClearOnNextRestart").setValue(options.getBooleanOption("ReallyClearOnNextRestart").getReal()); @@ -1789,6 +1790,15 @@ public class Core implements IdentityListener, UpdateListener { fcpInterface.setActive(newValue); } })); + options.addBooleanOption("FcpWriteFromFullAccessOnly", new DefaultOption(true, new OptionWatcher() { + + @Override + @SuppressWarnings("synthetic-access") + public void optionChanged(Option option, Boolean oldValue, Boolean newValue) { + fcpInterface.setAllowWriteFromFullAccessOnly(newValue); + } + + })); options.addBooleanOption("SoneRescueMode", new DefaultOption(false)); options.addBooleanOption("ClearOnNextRestart", new DefaultOption(false)); options.addBooleanOption("ReallyClearOnNextRestart", new DefaultOption(false)); @@ -1810,6 +1820,7 @@ public class Core implements IdentityListener, UpdateListener { options.getIntegerOption("NegativeTrust").set(configuration.getIntValue("Option/NegativeTrust").getValue(null)); options.getStringOption("TrustComment").set(configuration.getStringValue("Option/TrustComment").getValue(null)); options.getBooleanOption("ActivateFcpInterface").set(configuration.getBooleanValue("Option/ActivateFcpInterface").getValue(null)); + options.getBooleanOption("FcpWriteFromFullAccessOnly").set(configuration.getBooleanValue("Option/FcpWriteFromFullAccessOnly").getValue(null)); options.getBooleanOption("SoneRescueMode").set(configuration.getBooleanValue("Option/SoneRescueMode").getValue(null)); /* load known Sones. */ @@ -2111,6 +2122,33 @@ public class Core implements IdentityListener, UpdateListener { } /** + * Returns whether write access to the FCP interface is only allowed + * from the allowed FCP hosts of the node configuration. + * + * @return {@code true} if only allowed hosts are allowed to change data + * using the FCP interface, {@code false} if everybody can + * change data using the FCP interface + */ + public boolean isFcpWriteFromFullAccessOnly() { + return options.getBooleanOption("FcpWriteFromFullAccessOnly").get(); + } + + /** + * Sets whether write access to the FCP interface is only allowed from + * the allowed FCP hosts of the node configuration. + * + * @param fcpWriteFromFullAccessOnly + * {@code true} if only allowed hosts should be allowed to + * change data using the FCP interface, {@code false} if + * everybody can change data using the FCP interface + * @return This preferences object + */ + public Preferences setFcpWriteFromFullAccessOnly(boolean fcpWriteFromFullAccessOnly) { + options.getBooleanOption("FcpWriteFromFullAccessOnly").set(fcpWriteFromFullAccessOnly); + return this; + } + + /** * Returns whether the rescue mode is active. * * @return {@code true} if the rescue mode is active, {@code false} -- 2.7.4