diff --git a/app/models.py b/app/models.py
index 839bc49f..2ab3655d 100644
--- a/app/models.py
+++ b/app/models.py
@@ -36,6 +36,9 @@ class Permission(enum.Enum):
CHANGE_RELEASE_URL = "CHANGE_RELEASE_URL"
def check(self, user):
+ if not user.is_authenticated:
+ return False
+
if self == Permission.APPROVE_NEW:
return user.rank.atLeast(UserRank.EDITOR)
else:
diff --git a/app/templates/base.html b/app/templates/base.html
index 687d7188..f4baef4f 100644
--- a/app/templates/base.html
+++ b/app/templates/base.html
@@ -14,25 +14,27 @@
diff --git a/app/templates/todo.html b/app/templates/todo.html
new file mode 100644
index 00000000..524180a4
--- /dev/null
+++ b/app/templates/todo.html
@@ -0,0 +1,33 @@
+{% extends "base.html" %}
+
+{% block title %}
+{{ title }}
+{% endblock %}
+
+{% block content %}
+ Packages Awaiting Approval
+
+ {% endfor %}
+
+
+ Releases Awaiting Approval
+
+ {% endfor %}
+
+{% endblock %}
diff --git a/app/views/packages.py b/app/views/packages.py
index 60ba596f..f7773b42 100644
--- a/app/views/packages.py
+++ b/app/views/packages.py
@@ -30,6 +30,17 @@ def txp_page():
packages = Package.query.filter_by(type=PackageType.TXP, approved=True).all()
return render_template('packages.html', title="Texture Packs", packages=packages)
+def canSeeWorkQueue():
+ return Permission.APPROVE_NEW.check(current_user)
+
+@menu.register_menu(app, '.todo', "Work Queue", order=20, visible_when=lambda: canSeeWorkQueue)
+@app.route("/todo/")
+@login_required
+def todo_page():
+ packages = Package.query.filter_by(approved=False).all()
+ releases = PackageRelease.query.filter_by(approved=False).all()
+ return render_template('todo.html', title="Reports and Work Queue", approve_new=packages, releases=releases)
+
def getPageByInfo(type, author, name):
user = User.query.filter_by(username=author).first()
@@ -70,7 +81,7 @@ class PackageForm(FlaskForm):
forums = IntegerField("Forum Topic ID", [InputRequired(), NumberRange(0,999999)])
submit = SubmitField('Save')
-@menu.register_menu(app, '.new', 'Create', order=20)
+@menu.register_menu(app, '.new', 'Create', order=21, visible_when=lambda: current_user.is_authenticated)
@app.route("/new/", methods=['GET', 'POST'])
@app.route("/s///edit/", methods=['GET', 'POST'])
@login_required