Allow more than one local network to be defined

master
Gina Häußge 2013-08-18 22:50:52 +02:00
parent 5631a45006
commit 6ab8b76859
2 changed files with 14 additions and 6 deletions

View File

@ -858,12 +858,16 @@ def login():
return jsonify(user.asDict())
elif settings().getBoolean(["accessControl", "autologinLocal"]) \
and settings().get(["accessControl", "autologinAs"]) is not None \
and settings().get(["accessControl", "localNetwork"]) is not None:
and settings().get(["accessControl", "localNetworks"]) is not None:
autologinAs = settings().get(["accessControl", "autologinAs"])
localNetwork = settings().get(["accessControl", "localNetwork"])
localNetworks = netaddr.IPSet([])
for ip in settings().get(["accessControl", "localNetworks"]):
localNetworks.add(ip)
try:
remoteAddr = util.getRemoteAddress(request)
if netaddr.IPAddress(remoteAddr) in netaddr.IPNetwork(localNetwork):
if netaddr.IPAddress(remoteAddr) in localNetworks:
user = userManager.findUser(autologinAs)
if user is not None:
login_user(user)
@ -871,7 +875,7 @@ def login():
return jsonify(user.asDict())
except:
logger = logging.getLogger(__name__)
logger.exception("Could not autologin user %s for network %s" % (autologinAs, localNetwork))
logger.exception("Could not autologin user %s for networks %r" % (autologinAs, localNetworks))
return jsonify(SUCCESS)
@app.route(BASEURL + "logout", methods=["POST"])
@ -986,7 +990,11 @@ class Server():
connectionOptions = getConnectionOptions()
if port in connectionOptions["ports"]:
printer.connect(port, baudrate)
IOLoop.instance().start()
try:
IOLoop.instance().start()
except:
logger.fatal("Now that is embarrassing... Something really really went wrong here. Please report this including the stacktrace below in OctoPrint's bugtracker. Thanks!")
logger.exception("Stacktrace follows:")
def _createSocketConnection(self, session, endpoint=None):
global printer, gcodeManager, userManager, eventManager

View File

@ -90,7 +90,7 @@ default_settings = {
"userManager": "octoprint.users.FilebasedUserManager",
"userfile": None,
"autologinLocal": False,
"localNetwork": "127.0.0.1",
"localNetworks": ["127.0.0.0/8"],
"autologinAs": None
},
"events": {