KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to customize my Admin views with Flask and Flask-SuperAdmin, however, the index view and subviews are apparently not using the same is_accessible method: EDIT : I managed to figure out what I was doing wrong. I needed to define is_accessible in every view class. This is well-accomplished with a mixin-class, as show in the fixed code: app/frontend/admin.py ( FIXED & WORKING CODE ) from flask.ext.security import current_user, login_required from flask.ext.superadmin import expose, AdminIndexView from flask.ext.superadmin.model.base import ModelAdmin from ..core import db # all admin views should subclass AuthMixin class AuthMixin(object): def is_accessible(self): if current_user.is_authenticated() and current_user.has_role('Admin'): return True return False # the view that gets used for the admin home page class AdminIndex(AuthMixin, AdminIndexView): # use a custom template for the admin home page @expose('/') def index(self): return self.render('admin/index.jade') # base view for all other admin pages class AdminBase(AuthMixin, ModelAdmin): # AuthMixin must come before ModelAdmin! """A base class for customizing admin views using our DB connection.""" session = db.session # customize the form displays for User and Role models class UserAdmin(AdminBase): list_display = ('email',) search_fields = ('email',) exclude = ['password',] #fields_order = ['email', 'active', 'last_login_at',] class RoleAdmin(AdminBase): field_args = {'name': {'label': 'Role Name'}, 'description': {'description': "Duties & Responsibilities"}} list_display = ('name', 'description') Then set up the Flask app with our admin views: apps/factory.py app = Flask(package_name, instance_relative_config=True) # other app setup stuff like db, mail, ... from .frontend.admin im
Tags (comma-separated)
Save Edits
Cancel