12345678910111213141516171819202122 |
- from flask import redirect, url_for, request
- from flask_admin import expose, AdminIndexView
- from flask_admin.contrib import sqla
- from flask_login import current_user
- class SLModelView(sqla.ModelView):
- def is_accessible(self):
- return current_user.is_authenticated and current_user.is_admin
- 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))
- class SLAdminIndexView(AdminIndexView):
- @expose("/")
- def index(self):
- if not current_user.is_authenticated or not current_user.is_admin:
- return redirect(url_for("auth.login", next=request.url))
- return super(SLAdminIndexView, self).index()
|