1
0
mirror of https://github.com/simon987/Simple-Incremental-Search-Tool.git synced 2025-04-09 05:26:44 +00:00

Some work on user management

This commit is contained in:
simon 2018-05-13 13:52:09 -04:00
parent f06cc9e4a4
commit 3b2d2bdd8d
5 changed files with 37 additions and 27 deletions

@ -16,4 +16,5 @@ html2text
docx2txt
xlrd
six
cairosvg
cairosvg
ffmpeg-python

29
run.py

@ -37,6 +37,12 @@ def get_dir_size(path):
@app.route("/user/<user>")
def user_manage(user):
if "admin" in session and session["admin"]:
pass
else:
flash("You are not authorized to access this page", "warning")
return redirect("/")
return user
@ -67,17 +73,31 @@ def login():
@app.route("/user")
def user_page():
if "admin" in session and session["admin"]:
return render_template("user.html", users=storage.users())
admin_account_present = False
for user in storage.users():
if storage.users()[user].admin:
admin_account_present = True
break
if not admin_account_present or ("admin" in session and session["admin"]):
return render_template("user.html", users=storage.users(), admin_account_present=admin_account_present)
else:
flash("You are not authorized to access this page")
flash("You are not authorized to access this page", "warning")
return redirect("/")
@app.route("/user/add", methods=['POST'])
def user_add():
if "admin" in session and session["admin"]:
admin_account_present = False
for user in storage.users():
if storage.users()[user].admin:
admin_account_present = True
break
if not admin_account_present or ("admin" in session and session["admin"]):
username = request.form["username"]
password = bcrypt.hashpw(request.form["password"].encode("utf-8"), bcrypt.gensalt(config.bcrypt_rounds))
is_admin = True if "is_admin" in request.form else False
@ -99,7 +119,6 @@ def suggest():
return json.dumps(search.suggest(request.args.get("prefix")))
@app.route("/document/<doc_id>")
def document(doc_id):

File diff suppressed because one or more lines are too long

@ -9,6 +9,10 @@
<div class="card-header">Create user</div>
<div class="card-body">
{% if not admin_account_present %}
<p>This page is unlocked because there are no admin accounts</p>
{% endif %}
<form method="POST" action="/user/add">
<div class="input-group form-group">
@ -44,7 +48,7 @@
<tbody>
{% for user in users %}
<tr>
<td style="width: 80%;">{{ user }}</td>
<td style="width: 80%;">{% if session["username"] == user %}<b>{{ user }}{% else %}{{ user }}{% endif %}</b></td>
<td><i class="far {{ "fa-check-square" if users[user].admin else "fa-square" }}"></i></td>
<td><a href="/user/{{ user }}" class="btn btn-primary">Manage</a></td>
</tr>

@ -1,29 +1,15 @@
{% extends "layout.html" %}
{% set active_page = "user" %}
{% block body %}
<div class="container">
<div class="card">
<div class="card-header">Directory permissions</div>
<div class="card-header">Manage permission of <strong>{{ session["username"] }}</strong></div>
<div class="card-body">
<table class="info-table table-hover table-striped">
<thead>
<tr>
<th>Directory</th>
<th>Search access</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user }}</td>
<td><i class="far {{ "fa-check-square" if users[user].admin else "fa-square" }}"></i></td>
<td><a href="/user/{{ user }}" class="btn btn-primary">Manage</a></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>