Add user management
All checks were successful
Build Formula10 Docker Image / build-docker (push) Successful in 15s

This commit is contained in:
2024-02-16 15:12:02 +01:00
parent 240c9000f2
commit 799bb0c796
2 changed files with 103 additions and 1 deletions

View File

@ -247,5 +247,44 @@ def guessseason(username):
return redirect("/season") return redirect("/season")
@app.route("/users")
def users():
users = User.query.all()
return render_template("users.jinja",
users=users)
@app.route("/adduser", methods=["POST"])
def adduser():
username = request.form.get("select-add-user").strip()
if len(User.query.filter_by(name=username).all()) > 0:
print(f"Not adding user {username}: Already exists!")
return redirect("/users")
user = User()
user.name = username
db.session.add(user)
db.session.commit()
return redirect("/users")
@app.route("/deleteuser", methods=["POST"])
def deleteuser():
username = request.form.get("select-delete-user")
if username == "Select User":
return redirect("/users")
print(f"Deleting user {username}...")
User.query.filter_by(name=username).delete()
db.session.commit()
return redirect("/users")
if __name__ == "__main__": if __name__ == "__main__":
app.run(debug=False, host="0.0.0.0") app.run(debug=True, host="0.0.0.0")

63
templates/users.jinja Normal file
View File

@ -0,0 +1,63 @@
{% extends 'base.jinja' %}
{% set active_page = "users" %}
{% block title %}Formula 10 - Users{% endblock title %}
{% block body %}
<div class="card">
<div class="card-body">
<h5 class="card-title">Add User</h5>
<form action="/adduser" method="post">
<div class="input-group">
<div class="form-floating">
<input type="text" class="form-control" id="select-add-user" name="select-add-user" placeholder="Username:">
<label for="select-add-user">Username:</label>
</div>
<input type="submit" class="form-control btn btn-danger" value="Add" style="max-width: 200px;">
</div>
</form>
</div>
</div>
<div class="card mt-2">
<div class="card-body">
<h5 class="card-title">Registered Users</h5>
<ul class="list-group list-group-flush">
{% for user in users %}
<li class="list-group-item">{{ user.name }}</li>
{% endfor %}
</ul>
</div>
</div>
<div class="card mt-2">
<div class="card-body">
<h5 class="card-title">Delete User</h5>
<form action="/deleteuser" method="post">
<div class="input-group">
<select class="form-control form-select" aria-label="select-delete-user" name="select-delete-user">
<option selected="selected">Select User</option>
{% for user in users %}
<option value="{{ user.name }}">{{ user.name }}</option>
{% endfor %}
</select>
<input type="submit" class="form-control btn btn-danger" value="Delete" style="max-width: 200px;">
</div>
<div class="form-text">
"Deleting" a user just hides it from the user interface without deleting any inputs, your "pERsoNaL
DaTa" belongs to ME now.<br>
Re-adding a user with the same name will "restore" it. That doesn't mean you're allowed to remove everyone though.
</div>
</form>
</div>
</div>
{% endblock body %}