def forget(): form_reset = PasswordResetForm() form_forget = ForgetPasswordForm() if form_forget.validate_on_submit(): user_email = form_forget.email.data user_list = dat_loader.load_data("Users")["data"] customer_list = [] for x in user_list: if isinstance(x, Customer): customer_list.append(x) for x in customer_list: if x.email == user_email: p_token = Pass_token(x.get_id()) m1 = Mail() m1.content = f""" <!DOCTYPE html> <html lang="en"> <body> <pre> Dear {x.get_name()}, You have requested to reset your password for your Eclectic account. Copy or paste the link below to your browser or click on the link to reset your password. The link will expire after 2 hours. <a href="{p_token.get_link()}">{p_token.get_link()}</a> Warmest regards, Eclectic Support Team </pre> </body> </html> """ m1.subject = "Eclectic Password Reset Link" m1.send(x.email) new_list = dat_loader.load_data("Tokens")["data"] new_list.append(p_token) dat_loader.write_data("Tokens", new_list, False) return redirect("/login/") elif request.args.get("auth") is None and not is_authenticated(request): return render_template("home/forget_password.html", form=form_forget) elif form_reset.validate_on_submit(): user_id = int(form_reset.id.data) new_pass = form_reset.password1.data confirm_pass = form_reset.password2.data if new_pass == confirm_pass: user_list = dat_loader.load_data("Users")["data"] for x in user_list: if x.get_id() == user_id: x.Change_password(new_pass) dat_loader.write_data("Users", user_list, False) return redirect("/login/") auth_token = request.args.get("auth") token_list = dat_loader.load_data("Tokens")["data"] for x in token_list: trial = x.use(auth_token) if trial is None: pass else: form_reset.id.data = trial dat_loader.write_data("Tokens", token_list, False) else: return abort(400) elif not is_authenticated(request): auth_token = request.args.get("auth") token_list = dat_loader.load_data("Tokens")["data"] for x in token_list: trial = x.use(auth_token) if trial is None: pass else: form_reset.id.data = trial return render_template("home/new_password.html", form=form_reset) return redirect("/login/")