示例#1
0
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

        user = octoprint.server.userManager.findUser(username)
        if user is not None:
            if user.has_password():
                if astroprintCloud().validatePassword(username, password):
                    login_user(user, remember=remember)
                    identity_changed.send(current_app._get_current_object(),
                                          identity=Identity(user.get_id()))
                    return jsonify(user.asDict())
            else:
                try:
                    if astroprintCloud().signin(username, password):
                        return jsonify(current_user)

                except (AstroPrintCloudNoConnectionException, ConnectionError):
                    return make_response(
                        ("AstroPrint.com can't be reached", 503, []))
        return make_response(("User unknown or password incorrect", 401, []))
    elif "passive" in request.values.keys():
        user = current_user
        if user is not None and not user.is_anonymous:
            identity_changed.send(current_app._get_current_object(),
                                  identity=Identity(user.get_id()))
            return jsonify(user.asDict())
        elif s().getBoolean(["accessControl", "autologinLocal"]) \
         and s().get(["accessControl", "autologinAs"]) is not None \
         and s().get(["accessControl", "localNetworks"]) is not None:

            autologinAs = s().get(["accessControl", "autologinAs"])
            localNetworks = netaddr.IPSet([])
            for ip in s().get(["accessControl", "localNetworks"]):
                localNetworks.add(ip)

            try:
                remoteAddr = util.getRemoteAddress(request)
                if netaddr.IPAddress(remoteAddr) in localNetworks:
                    user = octoprint.server.userManager.findUser(autologinAs)
                    if user is not None:
                        login_user(user)
                        identity_changed.send(
                            current_app._get_current_object(),
                            identity=Identity(user.get_id()))
                        return jsonify(user.asDict())
            except:
                logger = logging.getLogger(__name__)
                logger.exception(
                    "Could not autologin user %s for networks %r" %
                    (autologinAs, localNetworks))
    return NO_CONTENT
示例#2
0
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

        user = octoprint.server.userManager.findUser(username)
        if user is not None:
            if octoprint.server.userManager.checkPassword(username, password):
                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.keys():
        user = current_user
        if user is not None and not user.is_anonymous():
            identity_changed.send(current_app._get_current_object(),
                                  identity=Identity(user.get_id()))
            return jsonify(user.asDict())
        elif s().getBoolean(["accessControl", "autologinLocal"]) \
         and s().get(["accessControl", "autologinAs"]) is not None \
         and s().get(["accessControl", "localNetworks"]) is not None \
            or s().getBoolean(["accessControl", "autologinWeb"]) is True: #modify by kevin, for auto login web

            autologinAs = s().get(["accessControl", "autologinAs"])
            localNetworks = netaddr.IPSet([])
            for ip in s().get(["accessControl", "localNetworks"]):
                localNetworks.add(ip)

            try:
                remoteAddr = util.getRemoteAddress(request)
                if netaddr.IPAddress(remoteAddr) in localNetworks \
                   or s().getBoolean(["accessControl", "autologinWeb"]) is True: #modify by kevin, for auto login web
                    if netaddr.IPAddress(remoteAddr) in localNetworks:
                        autologinAs = s().getBoolean([
                            "accessControl", "defaultUsers", "admin",
                            "username"
                        ])
                    user = octoprint.server.userManager.findUser(autologinAs)
                    if user is not None:
                        login_user(
                            user,
                            remember=True)  #modify by kevin, for autoLogin
                        identity_changed.send(
                            current_app._get_current_object(),
                            identity=Identity(user.get_id()))
                        return jsonify(user.asDict())
            except:
                logger = logging.getLogger(__name__)
                logger.exception(
                    "Could not autologin user %s for networks %r" %
                    (autologinAs, localNetworks))
    return NO_CONTENT
示例#3
0
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()
				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.keys():
		if octoprint.server.userManager is not None:
			user = octoprint.server.userManager.login_user(current_user)
		else:
			user = current_user

		if user is not None and not user.is_anonymous():
			identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id()))
			return jsonify(user.asDict())
		elif s().getBoolean(["accessControl", "autologinLocal"]) \
			and s().get(["accessControl", "autologinAs"]) is not None \
			and s().get(["accessControl", "localNetworks"]) is not None:

			autologinAs = s().get(["accessControl", "autologinAs"])
			localNetworks = netaddr.IPSet([])
			for ip in s().get(["accessControl", "localNetworks"]):
				localNetworks.add(ip)

			try:
				remoteAddr = util.getRemoteAddress(request)
				if netaddr.IPAddress(remoteAddr) in localNetworks:
					user = octoprint.server.userManager.findUser(autologinAs)
					if user is not None:
						login_user(user)
						identity_changed.send(current_app._get_current_object(), identity=Identity(user.get_id()))
						return jsonify(user.asDict())
			except:
				logger = logging.getLogger(__name__)
				logger.exception("Could not autologin user %s for networks %r" % (autologinAs, localNetworks))
	return NO_CONTENT
示例#4
0
def login():
    if 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

        user = userManager.findUser(username)
        if user is not None:
            if user.check_password(
                    users.UserManager.createPasswordHash(password)):
                login_user(user, remember=remember)
                identity_changed.send(current_app._get_current_object(),
                                      identity=Identity(user.get_id()))
                return jsonify(user.asDict())
        return app.make_response(
            ("User unknown or password incorrect", 401, []))
    elif "passive" in request.values.keys():
        user = current_user
        if user is not None and not user.is_anonymous():
            identity_changed.send(current_app._get_current_object(),
                                  identity=Identity(user.get_id()))
            return jsonify(user.asDict())
        elif settings().getBoolean(["accessControl", "autologinLocal"]) \
          and settings().get(["accessControl", "autologinAs"]) is not None \
          and settings().get(["accessControl", "localNetworks"]) is not None:

            autologinAs = settings().get(["accessControl", "autologinAs"])
            localNetworks = netaddr.IPSet([])
            for ip in settings().get(["accessControl", "localNetworks"]):
                localNetworks.add(ip)

            try:
                remoteAddr = util.getRemoteAddress(request)
                if netaddr.IPAddress(remoteAddr) in localNetworks:
                    user = userManager.findUser(autologinAs)
                    if user is not None:
                        login_user(user)
                        identity_changed.send(
                            current_app._get_current_object(),
                            identity=Identity(user.get_id()))
                        return jsonify(user.asDict())
            except:
                logger = logging.getLogger(__name__)
                logger.exception(
                    "Could not autologin user %s for networks %r" %
                    (autologinAs, localNetworks))
    return jsonify(SUCCESS)
示例#5
0
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

        user = octoprint.server.userManager.findUser(username)
        if user is not None:
            if user.check_password(octoprint.users.UserManager.createPasswordHash(password)):
                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.keys():
        user = current_user
        if user is not None and not user.is_anonymous():
            identity_changed.send(
                current_app._get_current_object(), identity=Identity(user.get_id()))
            return jsonify(user.asDict())
        elif (s.get("access_control", "autologin_local")
                and s.get("access_control", "autologin_as") is not None
                and s.get("access_control", "local_networks") is not None):

            autologinAs = s.get("access_control", "autologin_as")
            localNetworks = netaddr.IPSet([])
            for ip in s.get("access_control", "local_networks"):
                localNetworks.add(ip)

            try:
                remoteAddr = util.getRemoteAddress(request)
                if netaddr.IPAddress(remoteAddr) in localNetworks:
                    user = octoprint.server.userManager.findUser(autologinAs)
                    if user is not None:
                        login_user(user)
                        identity_changed.send(
                            current_app._get_current_object(), identity=Identity(user.get_id()))
                        return jsonify(user.asDict())
            except:
                logger = logging.getLogger(__name__)
                logger.exception(
                    "Could not autologin user %s for networks %r" % (autologinAs, localNetworks))
    return jsonify(SUCCESS)