def login(): fail = None if (request.method == 'POST'): if 'ht_user' in request.form: ht_profile = hxtool_global.hxtool_db.profileGet(request.form['controllerProfileDropdown']) if ht_profile: hx_api_object = HXAPI(ht_profile['hx_host'], hx_port = ht_profile['hx_port'], proxies = hxtool_global.hxtool_config['network'].get('proxies'), headers = hxtool_global.hxtool_config['headers'], cookies = hxtool_global.hxtool_config['cookies'], logger_name = hxtool_logging.getLoggerName(HXAPI.__name__), default_encoding = default_encoding) (ret, response_code, response_data) = hx_api_object.restLogin(request.form['ht_user'], request.form['ht_pass'], auto_renew_token = True) if ret: # Set session variables session['ht_user'] = request.form['ht_user'] session['ht_profileid'] = ht_profile['profile_id'] session['ht_api_object'] = hx_api_object.serialize() session['hx_version'] = hx_api_object.hx_version session['hx_int_version'] = int(''.join(str(i) for i in hx_api_object.hx_version)) session['hx_ip'] = hx_api_object.hx_host logger.info(format_activity_log(msg="user logged in", user=session['ht_user'], controller=session['hx_ip'])) redirect_uri = request.args.get('redirect_uri') if not redirect_uri: redirect_uri = "/" return redirect(redirect_uri, code=302) else: fail = response_data else: fail = "Invalid profile ID." return render_template('ht_login.html', hx_default_port = HXAPI.HX_DEFAULT_PORT, fail = fail, version = hxtool_vars.__version__)
def _add_task_api_task(self, profile_id, hx_host, hx_port, username, password): self.task_hx_api_sessions[profile_id] = HXAPI(hx_host, hx_port = hx_port, proxies = hxtool_global.hxtool_config['network'].get('proxies'), headers = hxtool_global.hxtool_config['headers'], cookies = hxtool_global.hxtool_config['cookies'], logger_name = hxtool_logging.getLoggerName(HXAPI.__name__), default_encoding = default_encoding) api_login_task = hxtool_scheduler_task(profile_id, "Task API Login - {}".format(hx_host), immutable = True) api_login_task.add_step(hxtool_task_modules.task_api_session_module, kwargs = { 'profile_id' : profile_id, 'username' : username, 'password' : password }) self.add(api_login_task)