Add authentication

This commit is contained in:
uid 2018-02-24 19:53:44 +01:00
parent 7d11a91627
commit 9b9e0f2662
2 changed files with 18 additions and 3 deletions

View File

@ -18,5 +18,5 @@ setup(
packages=['ciclostile'], packages=['ciclostile'],
scripts=['src/ciclostile_render', 'src/ciclostile_web'], scripts=['src/ciclostile_render', 'src/ciclostile_web'],
install_requires=['markdown', 'jinja2'] install_requires=['markdown', 'jinja2', 'flask', 'flask-httpauth']
) )

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
from flask import Flask, send_from_directory, render_template, request,\ from flask import Flask, send_from_directory, render_template, request
redirect from flask_httpauth import HTTPDigestAuth
import ciclostile import ciclostile
working_dir = os.getcwd() working_dir = os.getcwd()
@ -12,6 +12,19 @@ target_path, template_path, markdown_path = [
] ]
app = Flask(__name__) app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret key here'
auth = HTTPDigestAuth()
users = {
'admin': 'password',
}
@auth.get_password
def get_pw(username):
if username in users:
return users.get(username)
return None
@app.route('/assets/<path:path>') @app.route('/assets/<path:path>')
@ -27,12 +40,14 @@ def page(page_name):
@app.route('/<string:page_name>/edit') @app.route('/<string:page_name>/edit')
@auth.login_required
def edit(page_name): def edit(page_name):
md_text = ciclostile.read_markdown(page_name, markdown_path) md_text = ciclostile.read_markdown(page_name, markdown_path)
return render_template('edit.html', **locals()) return render_template('edit.html', **locals())
@app.route('/edit', methods=['POST']) @app.route('/edit', methods=['POST'])
@auth.login_required
def edit_actions(): def edit_actions():
page_name = request.form['page_name'] page_name = request.form['page_name']
md_text = request.form['md_text'] md_text = request.form['md_text']