diff options
Diffstat (limited to 'app/views/admin.py')
-rw-r--r-- | app/views/admin.py | 33 |
1 files changed, 31 insertions, 2 deletions
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") |