Allow more than one local network to be defined
parent
5631a45006
commit
6ab8b76859
|
@ -858,12 +858,16 @@ def login():
|
||||||
return jsonify(user.asDict())
|
return jsonify(user.asDict())
|
||||||
elif settings().getBoolean(["accessControl", "autologinLocal"]) \
|
elif settings().getBoolean(["accessControl", "autologinLocal"]) \
|
||||||
and settings().get(["accessControl", "autologinAs"]) is not None \
|
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"])
|
autologinAs = settings().get(["accessControl", "autologinAs"])
|
||||||
localNetwork = settings().get(["accessControl", "localNetwork"])
|
localNetworks = netaddr.IPSet([])
|
||||||
|
for ip in settings().get(["accessControl", "localNetworks"]):
|
||||||
|
localNetworks.add(ip)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
remoteAddr = util.getRemoteAddress(request)
|
remoteAddr = util.getRemoteAddress(request)
|
||||||
if netaddr.IPAddress(remoteAddr) in netaddr.IPNetwork(localNetwork):
|
if netaddr.IPAddress(remoteAddr) in localNetworks:
|
||||||
user = userManager.findUser(autologinAs)
|
user = userManager.findUser(autologinAs)
|
||||||
if user is not None:
|
if user is not None:
|
||||||
login_user(user)
|
login_user(user)
|
||||||
|
@ -871,7 +875,7 @@ def login():
|
||||||
return jsonify(user.asDict())
|
return jsonify(user.asDict())
|
||||||
except:
|
except:
|
||||||
logger = logging.getLogger(__name__)
|
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)
|
return jsonify(SUCCESS)
|
||||||
|
|
||||||
@app.route(BASEURL + "logout", methods=["POST"])
|
@app.route(BASEURL + "logout", methods=["POST"])
|
||||||
|
@ -986,7 +990,11 @@ class Server():
|
||||||
connectionOptions = getConnectionOptions()
|
connectionOptions = getConnectionOptions()
|
||||||
if port in connectionOptions["ports"]:
|
if port in connectionOptions["ports"]:
|
||||||
printer.connect(port, baudrate)
|
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):
|
def _createSocketConnection(self, session, endpoint=None):
|
||||||
global printer, gcodeManager, userManager, eventManager
|
global printer, gcodeManager, userManager, eventManager
|
||||||
|
|
|
@ -90,7 +90,7 @@ default_settings = {
|
||||||
"userManager": "octoprint.users.FilebasedUserManager",
|
"userManager": "octoprint.users.FilebasedUserManager",
|
||||||
"userfile": None,
|
"userfile": None,
|
||||||
"autologinLocal": False,
|
"autologinLocal": False,
|
||||||
"localNetwork": "127.0.0.1",
|
"localNetworks": ["127.0.0.0/8"],
|
||||||
"autologinAs": None
|
"autologinAs": None
|
||||||
},
|
},
|
||||||
"events": {
|
"events": {
|
||||||
|
|
Loading…
Reference in New Issue