async def post(self, request): form = LoginForm(request) errors = {} if form.validate(): username = form.username.data password = form.password.data try: query = await db_model.operator_query() user = await db_objects.get(query, username=username) if await user.check_password(password): if not user.active: form.username.errors = ["account is deactivated, cannot log in"] else: try: user.last_login = datetime.datetime.utcnow() await db_objects.update(user) # update the last login time to be now if user.current_operation is not None: # update that operations' event log that the user just signed in await db_objects.create(db_model.OperationEventLog, operator=None, operation=user.current_operation, message="{} signed in".format(user.username)) access_token, output = await self.responses.get_access_token_output( request, {'user_id': user.id, 'auth': 'cookie'}, self.config, self.instance) refresh_token = await self.instance.auth.generate_refresh_token(request, {'user_id': user.id, 'auth': 'cookie'}) output.update({ self.config.refresh_token_name(): refresh_token }) template = env.get_template('login.html') content = template.render(links=await respect_pivot(links, request), form=form, errors=errors, access_token=access_token, refresh_token=refresh_token, config={}, view_utc_time=False) resp = response.html(content) # resp = response.redirect("/") resp.cookies[self.config.cookie_access_token_name()] = access_token resp.cookies[self.config.cookie_access_token_name()]['httponly'] = True resp.cookies[self.config.cookie_refresh_token_name()] = refresh_token resp.cookies[self.config.cookie_refresh_token_name()]['httponly'] = True return resp except Exception as e: print("post login error:" + str(e)) errors['validate_errors'] = "failed to update login time" else: form.username.errors = ["Username or password invalid"] except Exception as e: print(str(sys.exc_info()[-1].tb_lineno) + " " + str(e)) form.username.errors = ['username or password invalid'] errors['username_errors'] = '<br>'.join(form.username.errors) errors['password_errors'] = '<br>'.join(form.password.errors) template = env.get_template('login.html') content = template.render(links=await respect_pivot(links, request), form=form, errors=errors, config={}, view_utc_time=False) return response.html(content)
def login(): form = LoginForm() if form.validate_on_submit(): user = User.from_username(str(form.username.data)) if user and user.validate(form.password.data): login_user(user) flash("Logged in successfully.") return form.redirect("index") else: flash("Password incorrect.") return render_template("login.html", form=form, title="Login")
async def post(self, request): form = LoginForm(request) errors = {} if form.validate(): username = form.username.data password = form.password.data try: query = await db_model.operator_query() user = await db_objects.get(query, username=username) if await user.check_password(password): if not user.active: errors[ 'validate_errors'] = "account is deactivated, cannot log in" else: try: user.last_login = datetime.datetime.now() await db_objects.update( user) # update the last login time to be now access_token, output = await self.responses.get_access_token_output( request, {'user_id': user.id}, self.config, self.instance) refresh_token = await self.instance.auth.generate_refresh_token( request, {'user_id': user.id}) output.update({ self.config.refresh_token_name(): refresh_token }) resp = response.redirect("/") resp.cookies[self.config.cookie_access_token_name( )] = access_token resp.cookies[self.config.cookie_access_token_name( )]['httponly'] = True resp.cookies[self.config.cookie_refresh_token_name( )] = refresh_token resp.cookies[self.config.cookie_refresh_token_name( )]['httponly'] = True return resp except Exception as e: print(e) errors[ 'validate_errors'] = "failed to update login time" else: errors['validate_errors'] = "Username or password invalid" except Exception as e: print(e) errors['username_errors'] = '<br>'.join(form.username.errors) errors['password_errors'] = '<br>'.join(form.password.errors) template = env.get_template('login.html') content = template.render(links=links, form=form, errors=errors) return response.html(content)
def login(): form = LoginForm() messages = Message.query.filter_by(deleted=False).all() if form.validate_on_submit(): user = User.from_username(str(form.username.data)) if user and user.validate(form.password.data): login_user(user) flash("Logged in successfully.") return form.redirect("planet") else: flash("Password incorrect.") return render_template("login.html", form=form, title="Login", messages=messages)
async def get(self, request): form = LoginForm(request) errors = {} errors['username_errors'] = '<br>'.join(form.username.errors) errors['password_errors'] = '<br>'.join(form.password.errors) template = env.get_template('login.html') content = template.render(links=links, form=form, errors=errors) return response.html(content)
async def get(self, request): form = LoginForm(request) errors = {} errors['username_errors'] = '<br>'.join(form.username.errors) errors['password_errors'] = '<br>'.join(form.password.errors) template = env.get_template('login.html') content = template.render(links=await respect_pivot(links, request), form=form, errors=errors, config={}, view_utc_time=False) return response.html(content)
async def login(request): form = LoginForm(request) errors = {} if request.method == 'POST' and form.validate(): username = form.username.data password = form.password.data try: user = await db_objects.get(Operator, username=username) if await user.check_password(password): login_user = User(id=user.id, name=user.username) auth.login_user(request, login_user) return response.redirect("/") except: errors['validate_errors'] = "Username or password invalid" errors['token_errors'] = '<br>'.join(form.csrf_token.errors) errors['username_errors'] = '<br>'.join(form.username.errors) errors['password_errors'] = '<br>'.join(form.password.errors) template = env.get_template('login.html') content = template.render(links=links, form=form, errors=errors) return response.html(content)
async def get(self, request): form = LoginForm(request) errors = {} errors["username_errors"] = "<br>".join(form.username.errors) errors["password_errors"] = "<br>".join(form.password.errors) template = env.get_template("login.html") content = template.render( links=await respect_pivot(links, request), form=form, errors=errors, config={}, view_utc_time=False, http="https" if use_ssl else "http", ws="wss" if use_ssl else "ws", ) return response.html(content)