Files
rfp_response_automation/files/modules/auth/routes.py
2026-02-18 20:34:33 -03:00

65 lines
1.7 KiB
Python

from flask import Blueprint, render_template, request, redirect, url_for, flash, jsonify, session
from modules.users.service import signup_user
from config_loader import load_config
from modules.users.service import create_user, authenticate_user
auth_bp = Blueprint(
"auth",
__name__,
template_folder="../../templates/users"
)
config = load_config()
@auth_bp.route("/signup", methods=["GET", "POST"])
def signup():
if request.method == "POST":
email = request.form.get("email")
name = request.form.get("name")
try:
link = signup_user(email, name)
if link and config.dev_mode == 1:
flash(f"DEV MODE: password link → {link}", "success")
else:
flash("User created and email sent", "success")
except Exception as e:
flash(str(e), "danger")
return redirect(url_for("auth.signup"))
return render_template("users/signup.html")
@auth_bp.route("/register", methods=["POST"])
def register():
data = request.json
create_user(data["username"], data["password"])
return jsonify({"status": "ok"})
@auth_bp.route("/login", methods=["POST"])
def login():
email = request.form.get("username")
password = request.form.get("password")
ok = authenticate_user(email, password)
if not ok:
flash("Invalid credentials")
return redirect("/login")
session["user_email"] = email
return redirect("/")
@auth_bp.route("/login", methods=["GET"])
def login_page():
return render_template("users/login.html")
@auth_bp.route("/logout")
def logout():
session.clear() # remove tudo da sessão
return redirect("/login")