From a20edf948a6929adb478bee68836d468ee2b142f Mon Sep 17 00:00:00 2001 From: deflax Date: Wed, 28 Feb 2018 17:22:44 +0200 Subject: [PATCH] Create fadmin.py --- flask-admin-integration/fadmin.py | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 flask-admin-integration/fadmin.py diff --git a/flask-admin-integration/fadmin.py b/flask-admin-integration/fadmin.py new file mode 100644 index 0000000..1d19e99 --- /dev/null +++ b/flask-admin-integration/fadmin.py @@ -0,0 +1,38 @@ +from flask import render_template, redirect, request, url_for, flash, session, abort, current_app +from flask_login import login_required, login_user, logout_user, current_user +from flask_admin import BaseView, AdminIndexView, expose +from flask_admin.contrib.sqla import ModelView + +class MyModelView(ModelView): + def is_accessible(self): + return current_user.is_administrator() + can_create = False + can_edit = True + can_delete = False + +class MyBaseView(BaseView): + def is_accessible(self): + return current_user.is_administrator() + +class MyAdminIndexView(AdminIndexView): + def is_accessible(self): + return current_user.is_administrator() + + def inaccessible_callback(self, name, **kwargs): + # redirect to login page if user doesn't have access + return redirect(url_for('auth.login', next=request.url)) + + @expose('/') + def index(self): + return self.render('fadmin.html') + + if not current_user.is_authenticated: + return redirect(url_for('auth.login')) + return super(MyAdminIndexView, self).index() + + @expose('/test1') + def test1(self): + return self.render('fadmin.html') + +class OrderView(MyModelView): + form_columns = ['comment', 'owner']