前端笔记

Vue 2.0 起步(6) 后台管理Flask-Admin更新

2017-03-01  本文已影响1435人  非梦nj

原文:Vue 2.0 起步(6) 后台管理Flask-Admin - 微信公众号RSS
http://www.jianshu.com/p/56cbb68f8797#

原来我们的教程(6),只允许Admin用户,才能查看后台。

为更直观理解教程,Demo网站暂时开放后台,普通用户也可以查看后台哦!(不能修改):

http://vue2.herokuapp.com/admin/article/
http://vue2.herokuapp.com/admin/mp/

non-admin.png

实现方法很简单:
在Flask-Admin每个自定义ModelView的地方,新加一个方法is_accessible(),作如下判断:

/app/main/views.py

class MyModelViewMp(MyModelViewBase):
    #column_select_related_list = ['subscribers',]
    column_formatters = dict(
        subscribers=lambda v, c, m, p: (m.subscribers_str), # '\n\p'.join
        articles=lambda v, c, m, p: (m.articles_str),
        )
    column_searchable_list = (Mp.weixinhao, Mp.mpName, )

    def is_accessible(self):
        if not current_user.is_active or not current_user.is_authenticated:
            return False
        superuser = current_user.has_role('superuser')
        editor = current_user.has_role('editor')
        self.can_create = superuser
        self.can_edit = superuser or editor
        self.can_delete = superuser
        return True

如果想禁止用户查看某个Model,则直接检查has_role('superuser'就行。
比如:User数据库

class MyModelViewUser(MyModelViewBase):
    #column_select_related_list = ['mps',]
    column_formatters = dict(
        password=lambda v, c, m, p: '**'+m.password[-6:],
        mps=lambda v, c, m, p: (m.subscribed_mps_str),  # '\n\p'.join
        )
    column_searchable_list = (User.email, )
        
    def is_accessible(self):
        if not current_user.is_active or not current_user.is_authenticated:
            return False
        return current_user.has_role('superuser')

请大家访问Demo网站时,不要用真实信息,这只是测试用的网站!
如果想删除敏感信息,可以私信我。

上一篇 下一篇

猜你喜欢

热点阅读