29 lines
741 B
Python
29 lines
741 B
Python
|
from flask import current_app
|
||
|
import flask_sqlalchemy
|
||
|
import flask_migrate
|
||
|
import flask_admin
|
||
|
|
||
|
from flask_admin.contrib.sqla import ModelView as BaseModelView
|
||
|
from flask_login import current_user
|
||
|
|
||
|
|
||
|
class SecurityMixin:
|
||
|
def is_accessible(self):
|
||
|
return current_user.is_authenticated
|
||
|
|
||
|
def inaccessible_callback(self, name, **kwargs):
|
||
|
# redirect to login page if user doesn't have access
|
||
|
return current_app.login_manager.unauthorized()
|
||
|
|
||
|
class IndexView(SecurityMixin, flask_admin.AdminIndexView):
|
||
|
pass
|
||
|
|
||
|
|
||
|
class ModelView(SecurityMixin, BaseModelView):
|
||
|
pass
|
||
|
|
||
|
|
||
|
db = flask_sqlalchemy.SQLAlchemy()
|
||
|
migrate = flask_migrate.Migrate()
|
||
|
admin = flask_admin.Admin(template_mode='bootstrap3', index_view=IndexView())
|