admin login ok

This commit is contained in:
ridethepig 2022-11-12 19:29:33 +08:00
parent a8beae1b50
commit bb86ed7c4d
4 changed files with 42 additions and 2 deletions

View File

@ -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

14
src/admin.py Normal file
View File

@ -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")

View File

@ -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,)
@ -80,3 +83,14 @@ 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

View File

@ -0,0 +1,9 @@
{% extends 'base.html' %}
{% block header %}
<h1>{% block title %}管理主页{% endblock %}</h1>
{% endblock %}
{% block content %}
<p> lalala </p>
{% endblock %}