32 lines
1 KiB
Python
32 lines
1 KiB
Python
|
from flask import render_template, request, redirect, session, flash, url_for
|
||
|
from blog import app
|
||
|
from functools import wraps
|
||
|
|
||
|
def login_required(view):
|
||
|
@wraps(view)
|
||
|
def inner(*args, **kwargs):
|
||
|
if not session.get('logged_in'):
|
||
|
return redirect(url_for('login'))
|
||
|
return view(*args, **kwargs)
|
||
|
return inner
|
||
|
|
||
|
@app.route("/login", methods=['GET', 'POST'])
|
||
|
def login():
|
||
|
error = None
|
||
|
if request.method == 'POST':
|
||
|
if request.form['username'] != app.config['USERNAME']:
|
||
|
flash("ユーザー名が異なります")
|
||
|
elif request.form['password'] != app.config['PASSWORD']:
|
||
|
flash("パスワードが異なります")
|
||
|
else:
|
||
|
session['logged_in'] = True
|
||
|
flash("ログインしました")
|
||
|
return redirect(url_for("show_entries"))
|
||
|
return render_template("login.html")
|
||
|
|
||
|
@app.route("/logout")
|
||
|
def logout():
|
||
|
session.pop('logged_in', None)
|
||
|
flash("ログアウトしました")
|
||
|
return redirect(url_for("show_entries"))
|