diff options
author | rubenwardy <rw@rubenwardy.com> | 2018-07-30 00:16:03 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2018-07-30 00:16:22 +0100 |
commit | dd6257a0a042f1ae82bcd00c999fade3746abdbf (patch) | |
tree | ff821173b04a7d90722ec88a2f0087017d53f40b | |
parent | 23b324cc9c3e6ace8954067c81545aac214f00c9 (diff) | |
download | cheatdb-dd6257a0a042f1ae82bcd00c999fade3746abdbf.tar.xz |
Add flask-admin
-rw-r--r-- | app/templates/admin/list.html | 3 | ||||
-rw-r--r-- | app/views/admin.py | 33 | ||||
-rw-r--r-- | requirements.txt | 1 |
3 files changed, 34 insertions, 3 deletions
diff --git a/app/templates/admin/list.html b/app/templates/admin/list.html index a2ac6d5..307821f 100644 --- a/app/templates/admin/list.html +++ b/app/templates/admin/list.html @@ -1,11 +1,12 @@ {% extends "base.html" %} {% block title %} - Admin Tools +Admin {% endblock %} {% block content %} <ul> + <li><a href="db/">Database</a></li> <li><a href="{{ url_for('user_list_page') }}">User list</a></li> <li><a href="{{ url_for('tag_list_page') }}">Tag Editor</a></li> <li><a href="{{ url_for('license_list_page') }}">License Editor</a></li> diff --git a/app/views/admin.py b/app/views/admin.py index 029d4c9..0e44897 100644 --- a/app/views/admin.py +++ b/app/views/admin.py @@ -27,6 +27,34 @@ from flask_wtf import FlaskForm from wtforms import * from app.utils import loginUser, rank_required, triggerNotif import datetime +from flask_admin import Admin +from flask_admin.contrib.sqla import ModelView + +class MyModelView(ModelView): + def is_accessible(self): + return current_user.is_authenticated and current_user.rank.atLeast(UserRank.ADMIN) + + def inaccessible_callback(self, name, **kwargs): + # redirect to login page if user doesn't have access + return redirect(url_for('user.login', next=request.url)) + +admin = Admin(app, name='ContentDB', template_mode='bootstrap3', url="/admin/db") +admin.add_view(MyModelView(User, db.session)) +admin.add_view(MyModelView(Package, db.session)) +admin.add_view(MyModelView(Dependency, db.session)) +admin.add_view(MyModelView(EditRequest, db.session)) +admin.add_view(MyModelView(EditRequestChange, db.session)) +admin.add_view(MyModelView(ForumTopic, db.session)) +admin.add_view(MyModelView(License, db.session)) +admin.add_view(MyModelView(MetaPackage, db.session)) +admin.add_view(MyModelView(Notification, db.session)) +admin.add_view(MyModelView(PackageRelease, db.session)) +admin.add_view(MyModelView(PackageScreenshot, db.session)) +admin.add_view(MyModelView(Tag, db.session)) +admin.add_view(MyModelView(Thread, db.session)) +admin.add_view(MyModelView(ThreadReply, db.session)) +admin.add_view(MyModelView(UserEmailVerification, db.session)) + @app.route("/admin/", methods=["GET", "POST"]) @rank_required(UserRank.ADMIN) @@ -79,8 +107,8 @@ def admin_page(): rel = PackageRelease() rel.package = package - rel.title = datetime.date.today().isoformat() - rel.url = "" + rel.title = datetime.date.today().isoformat() + rel.url = "" rel.task_id = uuid() rel.approved = True db.session.add(rel) @@ -98,6 +126,7 @@ def admin_page(): deleted_packages = Package.query.filter_by(soft_deleted=True).all() return render_template("admin/list.html", deleted_packages=deleted_packages) + class SwitchUserForm(FlaskForm): username = StringField("Username") submit = SubmitField("Switch") diff --git a/requirements.txt b/requirements.txt index c590e1f..c651378 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,3 +14,4 @@ Flask-FlatPages==0.6 Flask-Migrate==2.1.1 pillow==5.1.0 GitPython==2.1.10 +flask-admin==1.5.1 |