add simple login page
This commit is contained in:
parent
392c6bc748
commit
67262ec785
3 changed files with 81 additions and 9 deletions
|
@ -8,10 +8,13 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>Modération des commentaires</h1>
|
<h2>Modération des commentaires</h2>
|
||||||
|
<nav>
|
||||||
|
<a href="/web/logout">Déconnecter</a>
|
||||||
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
<main>
|
<main>
|
||||||
{% with messages = get_flashed_messages() %}
|
{% with messages = get_flashed_messages() %}
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
<blockquote>
|
<blockquote>
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
|
@ -19,7 +22,7 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</blockquote>
|
</blockquote>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -38,12 +41,12 @@
|
||||||
<td>{{ comment.content }}</td>
|
<td>{{ comment.content }}</td>
|
||||||
<td><a href="{{ baseurl + comment.url }}">{{ comment.url }}</a></td>
|
<td><a href="{{ baseurl + comment.url }}">{{ comment.url }}</a></td>
|
||||||
<td>
|
<td>
|
||||||
<form action="/web" method="post">
|
<form action="/web/admin" method="post">
|
||||||
<input type="hidden" name="comment" value="{{comment.id}}">
|
<input type="hidden" name="comment" value="{{comment.id}}">
|
||||||
<input type="hidden" name="action" value="APPROVE">
|
<input type="hidden" name="action" value="APPROVE">
|
||||||
<button type="submit">Accepter</button>
|
<button type="submit">Accepter</button>
|
||||||
</form>
|
</form>
|
||||||
<form action="/web" method="post">
|
<form action="/web/admin" method="post">
|
||||||
<input type="hidden" name="comment" value="{{comment.id}}">
|
<input type="hidden" name="comment" value="{{comment.id}}">
|
||||||
<input type="hidden" name="action" value="REJECT">
|
<input type="hidden" name="action" value="REJECT">
|
||||||
<button type="submit">Rejeter</button>
|
<button type="submit">Rejeter</button>
|
||||||
|
|
42
stacosys/interface/templates/login_fr.html
Normal file
42
stacosys/interface/templates/login_fr.html
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Stacosys</title>
|
||||||
|
<link rel="stylesheet" href="https://cdn.simplecss.org/simple.min.css">
|
||||||
|
<style>
|
||||||
|
form {
|
||||||
|
width: 350px;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h2>Modération des commentaires</h2>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
{% with messages = get_flashed_messages() %}
|
||||||
|
{% if messages %}
|
||||||
|
<blockquote>
|
||||||
|
{% for message in messages %}
|
||||||
|
<p>{{ message }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</blockquote>
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
|
<form action="/web/login" method="POST">
|
||||||
|
<p><label>Utilisateur </label></p>
|
||||||
|
<p><input type="text" name="username" /></p>
|
||||||
|
<p><label>Mot de passe </label></p>
|
||||||
|
<p><input type="password" name="password" /></p>
|
||||||
|
<input type="submit" value="Connecter" />
|
||||||
|
</form>
|
||||||
|
</main>
|
||||||
|
<footer>
|
||||||
|
<p>Cette page a été conçue par Yax avec <a href="https://simplecss.org">Simple.css</a>.</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -3,22 +3,49 @@
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from flask import request, redirect, flash, render_template
|
from flask import request, redirect, flash, render_template, session
|
||||||
|
|
||||||
from stacosys.db import dao
|
from stacosys.db import dao
|
||||||
from stacosys.interface import app
|
from stacosys.interface import app
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
user = {"username": "admin", "password": "toto"}
|
||||||
|
|
||||||
@app.route("/web", methods=["GET"])
|
|
||||||
|
@app.route('/web/login', methods=['POST', 'GET'])
|
||||||
|
def login():
|
||||||
|
if request.method == 'POST':
|
||||||
|
username = request.form.get('username')
|
||||||
|
password = request.form.get('password')
|
||||||
|
if username == user['username'] and password == user['password']:
|
||||||
|
session['user'] = username
|
||||||
|
return redirect('/web/admin')
|
||||||
|
|
||||||
|
flash("Identifiant ou mot de passe incorrect")
|
||||||
|
return redirect('/web/login')
|
||||||
|
|
||||||
|
return render_template("login_" + app.config.get("LANG") + ".html")
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/web/logout', methods=["GET"])
|
||||||
|
def logout():
|
||||||
|
session.pop('user')
|
||||||
|
return redirect('/web/login')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/web/admin", methods=["GET"])
|
||||||
def admin_homepage():
|
def admin_homepage():
|
||||||
|
if not ('user' in session and session['user'] == user['username']):
|
||||||
|
flash("Vous avez été déconnecté.")
|
||||||
|
return redirect('/web/login')
|
||||||
|
|
||||||
comments = dao.find_not_published_comments()
|
comments = dao.find_not_published_comments()
|
||||||
return render_template("admin_" + app.config.get("LANG") + ".html", comments=comments,
|
return render_template("admin_" + app.config.get("LANG") + ".html", comments=comments,
|
||||||
baseurl=app.config.get("SITE_URL"))
|
baseurl=app.config.get("SITE_URL"))
|
||||||
|
|
||||||
|
|
||||||
@app.route("/web", methods=["POST"])
|
@app.route("/web/admin", methods=["POST"])
|
||||||
def admin_action():
|
def admin_action():
|
||||||
flash(request.form.get("comment") + " " + request.form.get("action"))
|
flash(request.form.get("comment") + " " + request.form.get("action"))
|
||||||
return redirect('/web')
|
return redirect('/web/admin')
|
||||||
|
|
Loading…
Add table
Reference in a new issue