blob: aaa74779d6091c4088f7812557e04d5277fb5943 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
from typing import Union
from flask import redirect, url_for, render_template
from flask_login import current_user, login_required, logout_user
from flask_wtf import FlaskForm
from werkzeug import Response
from wtforms import SubmitField
from ..model import User
from .blueprint import auth, db
class DeleteForm(FlaskForm):
"""To Handle Delete the user"""
submit = SubmitField("Delete")
@auth.route("/delete", methods=["GET", "POST"])
@login_required
def delete() -> Union[str, Response]:
"""
Delete the user account. Has both GET and POST
"""
form = DeleteForm()
if form.validate_on_submit():
user_id = current_user.id # type: ignore
logout_user()
user = db.session.scalars(db.select(User).where(User.id == user_id)).one()
db.session.delete(user)
db.session.commit()
return redirect(url_for("index"))
return render_template("auth/delete.html", form=form)
|