def will_handle_ui(self, request): if not self.active: # not active, not responsible return False from octoprint.server.util import loginUserFromApiKey, loginUserFromAuthorizationHeader, InvalidApiKeyException from octoprint.server.util.flask import passive_login # first try to login via api key & authorization header, just in case that's set try: if loginUserFromApiKey(): # successful? No need for handling the UI return False except InvalidApiKeyException: pass # ignored if loginUserFromAuthorizationHeader(): # successful? No need for handling the UI return False # then try a passive login passive_login() if Permissions.STATUS.can() and Permissions.SETTINGS_READ.can(): # Status & settings_read permission? No need to handle UI return False else: return True
def login(): data = request.values if hasattr(request, "json") and request.json: data = request.json if octoprint.server.userManager.enabled and "user" in data and "pass" in data: username = data["user"] password = data["pass"] if "remember" in data and data["remember"] in valid_boolean_trues: remember = True else: remember = False if "usersession.id" in session: _logout(current_user) user = octoprint.server.userManager.findUser(username) if user is not None: if octoprint.server.userManager.checkPassword(username, password): if not user.is_active(): return make_response(("Your account is deactivated", 403, [])) if octoprint.server.userManager.enabled: user = octoprint.server.userManager.login_user(user) session["usersession.id"] = user.session g.user = user login_user(user, remember=remember) identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id())) return jsonify(user.asDict()) return make_response(("User unknown or password incorrect", 401, [])) elif "passive" in data: return passive_login() return NO_CONTENT
def login(): if octoprint.server.userManager is not None and "user" in request.values.keys() and "pass" in request.values.keys(): username = request.values["user"] password = request.values["pass"] if "remember" in request.values.keys() and request.values["remember"] == "true": remember = True else: remember = False if "usersession.id" in session: _logout(current_user) user = octoprint.server.userManager.findUser(username) if user is not None: if octoprint.server.userManager.checkPassword(username, password): if octoprint.server.userManager is not None: user = octoprint.server.userManager.login_user(user) session["usersession.id"] = user.get_session() g.user = user login_user(user, remember=remember) identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id())) return jsonify(user.asDict()) return make_response(("User unknown or password incorrect", 401, [])) elif "passive" in request.values: return passive_login() return NO_CONTENT
def login(): if octoprint.server.userManager.enabled and "user" in request.values.keys( ) and "pass" in request.values.keys(): username = request.values["user"] password = request.values["pass"] if "remember" in request.values.keys( ) and request.values["remember"] == "true": remember = True else: remember = False if "usersession.id" in session: _logout(current_user) user = octoprint.server.userManager.findUser(username) if user is not None: if octoprint.server.userManager.checkPassword(username, password): if octoprint.server.userManager.enabled: user = octoprint.server.userManager.login_user(user) session["usersession.id"] = user.get_session() g.user = user login_user(user, remember=remember) identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id())) return jsonify(user.asDict()) return make_response(("User unknown or password incorrect", 401, [])) elif "passive" in request.values: return passive_login() return NO_CONTENT
def will_handle_ui(self, request): if not self.active: # not active, not responsible return False from octoprint.server.util import loginUserFromApiKey, loginUserFromAuthorizationHeader, InvalidApiKeyException from octoprint.server.util.flask import passive_login # first try to login via api key & authorization header, just in case that's set try: if loginUserFromApiKey(): # successful? No need for handling the UI return False except InvalidApiKeyException: pass # ignored if loginUserFromAuthorizationHeader(): # successful? No need for handling the UI return False # then try a passive login result = passive_login() if hasattr(result, "status_code") and result.status_code == 200: # successful? No need for handling the UI return False else: return True
def will_handle_ui(self, request): from octoprint.server.util.flask import passive_login result = passive_login() if hasattr(result, "status_code") and result.status_code == 200: # passive login successful, no need to handle that return False else: return True
def login(): data = request.get_json() if not data: data = request.values if octoprint.server.userManager.enabled and "user" in data and "pass" in data: username = data["user"] password = data["pass"] if "remember" in data and data["remember"] in valid_boolean_trues: remember = True else: remember = False if "usersession.id" in session: _logout(current_user) user = octoprint.server.userManager.find_user(username) if user is not None: if octoprint.server.userManager.check_password(username, password): if not user.is_active: return make_response( ("Your account is deactivated", 403, [])) if octoprint.server.userManager.enabled: user = octoprint.server.userManager.login_user(user) session["usersession.id"] = user.session g.user = user login_user(user, remember=remember) identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id())) remote_addr = get_remote_address(request) logging.getLogger(__name__).info( "Actively logging in user {} from {}".format( user.get_id(), remote_addr)) response = user.as_dict() response["_is_external_client"] = s().getBoolean(["server", "ipCheck", "enabled"]) \ and not util_net.is_lan_address(remote_addr, additional_private=s().get(["server", "ipCheck", "trustedSubnets"])) r = make_response(jsonify(response)) r.delete_cookie("active_logout") eventManager().fire(Events.USER_LOGGED_IN, payload=dict(username=user.get_id())) return r return make_response(("User unknown or password incorrect", 403, [])) elif "passive" in data: return passive_login() return make_response( "Neither user and pass attributes nor passive flag present", 400)
def will_handle_ui(self, request): if self._user_manager.enabled and not self._user_manager.hasBeenCustomized(): # ACL hasn't been configured yet, make an exception return False from octoprint.server.util.flask import passive_login result = passive_login() if hasattr(result, "status_code") and result.status_code == 200: # passive login successful, no need to handle that return False else: return True
def login(): data = request.values if hasattr(request, "json") and request.json: data = request.json if octoprint.server.userManager.enabled and "user" in data and "pass" in data: username = data["user"] password = data["pass"] if "remember" in data and data["remember"] in valid_boolean_trues: remember = True else: remember = False if "usersession.id" in session: _logout(current_user) user = octoprint.server.userManager.findUser(username) if user is not None: if octoprint.server.userManager.checkPassword(username, password): if not user.is_active(): return make_response( ("Your account is deactivated", 403, [])) if octoprint.server.userManager.enabled: user = octoprint.server.userManager.login_user(user) session["usersession.id"] = user.session g.user = user login_user(user, remember=remember) identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id())) remote_addr = get_remote_address(request) logging.getLogger(__name__).info( "Actively logging in user {} from {}".format( user.get_id(), remote_addr)) response = user.asDict() response["_is_external_client"] = s().getBoolean(["server", "ipCheck", "enabled"]) \ and not util_net.is_lan_address(remote_addr, additional_private=s().get(["server", "ipCheck", "trustedSubnets"])) return jsonify(response) return make_response(("User unknown or password incorrect", 401, [])) elif "passive" in data: return passive_login() return NO_CONTENT
def login(): data = request.values if hasattr(request, "json") and request.json: data = request.json if octoprint.server.userManager.enabled and "user" in data and "pass" in data: username = data["user"] password = data["pass"] if "remember" in data and data["remember"] in valid_boolean_trues: remember = True else: remember = False if "usersession.id" in session: _logout(current_user) user = octoprint.server.userManager.findUser(username) if user is not None: if octoprint.server.userManager.checkPassword(username, password): if not user.is_active(): return make_response(("Your account is deactivated", 403, [])) if octoprint.server.userManager.enabled: user = octoprint.server.userManager.login_user(user) session["usersession.id"] = user.session g.user = user login_user(user, remember=remember) identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id())) remote_addr = get_remote_address(request) logging.getLogger(__name__).info("Actively logging in user {} from {}".format(user.get_id(), remote_addr)) response = user.asDict() response["_is_external_client"] = s().getBoolean(["server", "ipCheck", "enabled"]) \ and not util_net.is_lan_address(remote_addr, additional_private=s().get(["server", "ipCheck", "trustedSubnets"])) return jsonify(response) return make_response(("User unknown or password incorrect", 401, [])) elif "passive" in data: return passive_login() return NO_CONTENT