diff --git a/src/__init__.py b/src/__init__.py index e9dc5a4..133cb4e 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -22,10 +22,13 @@ def create_app(test_config=None): pass @app.route('/') - def hello(): + def index(): return render_template("index.html") from . import db db.init_app(app) from . import auth app.register_blueprint(auth.bp) + from . import admin + app.register_blueprint(admin.bp) + app.add_url_rule("/admin", endpoint="admin.index") return app \ No newline at end of file diff --git a/src/admin.py b/src/admin.py new file mode 100644 index 0000000..7149199 --- /dev/null +++ b/src/admin.py @@ -0,0 +1,14 @@ +from flask import ( + Blueprint, flash, g, redirect, render_template, request, url_for +) +from werkzeug.exceptions import abort + +from src.auth import admin_login_required +from src.db import get_db + +bp = Blueprint('admin', __name__, url_prefix='/admin') + +@bp.route('/') +@admin_login_required +def index(): + return render_template("admin/index.html") \ No newline at end of file diff --git a/src/auth.py b/src/auth.py index 0e816a9..f7278f0 100644 --- a/src/auth.py +++ b/src/auth.py @@ -46,7 +46,7 @@ def loginadmin(): if error is None: session.clear() session['user_id'] = 0 - return redirect(url_for('admin')) + return redirect(url_for('admin.index')) flash(error) return render_template('auth/loginadmin.html') @@ -60,6 +60,9 @@ def load_logged_in_user(): if user_id is None: g.user = None + elif user_id == 0: + g.user = {'user_id':0, 'user_name': 'admin'} + # use id=0 to refer to admin else: g.user = get_db().execute( 'SELECT * FROM user WHERE user_id = ?', (user_id,) @@ -79,4 +82,15 @@ def login_required(view): return view(**kwargs) + return wrapped_view + +def admin_login_required(view): + @functools.wraps(view) + def wrapped_view(**kwargs): + if g.user is None: + return redirect(url_for('auth.loginadmin')) + elif g.user['user_id'] != 0: + return redirect(url_for('index')) + return view(**kwargs) + return wrapped_view \ No newline at end of file diff --git a/src/templates/admin/index.html b/src/templates/admin/index.html new file mode 100644 index 0000000..d2abfa3 --- /dev/null +++ b/src/templates/admin/index.html @@ -0,0 +1,9 @@ +{% extends 'base.html' %} + +{% block header %} +

{% block title %}管理主页{% endblock %}

+{% endblock %} + +{% block content %} +

lalala

+{% endblock %} \ No newline at end of file