# myapp/views/auth.py from flask import Blueprint, render_template, request, jsonify, redirect, url_for, session, current_app from ..services.auth_service import register_user, login_user, logout_user from ..auth.decorators import require_role bp = Blueprint("auth", __name__) @bp.get("/register") def register(): return render_template("register.html") @bp.get("/register_teacher") def register_teacher(): return render_template("register_teacher.html") @bp.post("/register_post") def register_post(): data = request.get_json(force=True) or {} ok, msg = register_user(data.get("username"), data.get("password"), teacher=False) return jsonify({"success": ok, "message": msg}) @bp.post("/register_teacher_post") def register_teacher_post(): data = request.get_json(force=True) or {} ok, msg = register_user(data.get("username"), data.get("password"), teacher=True) return jsonify({"success": ok, "message": msg}) @bp.get("/login") def login(): # 你原来 return 后还有逻辑,已被覆盖;这里简化 return render_template("login.html") @bp.post("/login_post") def login_post(): data = request.get_json(force=True) or {} ok, msg = login_user(data.get("username"), data.get("password"), require_teacher=False) return jsonify({"success": ok, "message": msg}) @bp.post("/login_teacher_post") def login_teacher_post(): data = request.get_json(force=True) or {} ok, msg = login_user(data.get("username"), data.get("password"), require_teacher=True) return jsonify({"success": ok, "message": msg}) @bp.get("/logout") def logout(): logout_user() return redirect(url_for("auth.login")) @bp.get("/get_session") def get_session(): return jsonify({"session": session.get("user_id", "default_session")})