X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=1860473c51599225a1cfebd5c7b446480cc14e3a;hb=922af0c6ccb37071d1928d12e40aedd15511769a;hp=1aba559c5fb786c5e836c1aedb96f6db4af893db;hpb=d679c9cab83d96c2a452543474b1fa14d231a047;p=Sone.git 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}