Version 0.1.1 rise to flask app factory
This commit is contained in:
57
Html/apps/views/auth.py
Normal file
57
Html/apps/views/auth.py
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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("/teacherboard")
|
||||
@require_role(roles="teacher")
|
||||
def teacherboard():
|
||||
return render_template("teacherboard.html")
|
||||
|
||||
@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")})
|
||||
Reference in New Issue
Block a user