-
-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathadmin.py
More file actions
33 lines (25 loc) · 1.08 KB
/
admin.py
File metadata and controls
33 lines (25 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from flask_admin import Admin, AdminIndexView
from flask_admin.contrib.sqla import ModelView
from flask import url_for, redirect, request
from app import db
from .models import Resource, Category, Language, User, Role
from flask_security import current_user
class AdminView(ModelView):
def is_accessible(self):
return current_user.has_role("admin")
def inaccessible_callback(self):
return redirect(url_for("security.login", next=request.url))
class HomeAdminView(AdminIndexView):
def is_accessible(self):
return current_user.has_role("admin")
def inaccessible_callback(self, name):
return redirect(url_for("security.login", next=request.url))
def run_flask_admin(app):
admin = Admin(app, name="Resources_api", url='/',
index_view=HomeAdminView(name="Home"))
admin.add_view(AdminView(Role, db.session))
admin.add_view(AdminView(User, db.session))
admin.add_view(AdminView(Resource, db.session))
admin.add_view(AdminView(Category, db.session))
admin.add_view(AdminView(Language, db.session))
return admin