29 lines
899 B
Python
29 lines
899 B
Python
from flask import Blueprint, render_template, request
|
|||
|
|
from models import db
|
||
|
|
from models import Group
|
||
|
|
from flask_login import login_required, current_user
|
||
|
|
|
||
|
|
groups_bp = Blueprint("groups", __name__)
|
||
|
|
|
||
|
|
@groups_bp.route("/groups", methods=["GET", "POST"])
|
||
|
|
@login_required
|
||
|
|
def groups():
|
||
|
|
if not current_user.is_admin:
|
||
|
|
return "Forbidden", 403
|
||
|
|
error = ""
|
||
|
|
|
||
|
|
if request.method == "POST":
|
||
|
|
secret = request.form["secret"].strip()
|
||
|
|
if not secret:
|
||
|
|
error = "Group secret is required."
|
||
|
|
elif Group.query.filter_by(secret=secret).first():
|
||
|
|
error = "That group already exists."
|
||
|
|
else:
|
||
|
|
group = Group(secret=secret)
|
||
|
|
db.session.add(group)
|
||
|
|
db.session.commit()
|
||
|
|
|
||
|
|
return render_template("groups.html",
|
||
|
|
groups=Group.query.order_by(Group.id).all(),
|
||
|
|
error=error)
|