如何用Flask-admin和flask-principal按角色处理用户?
我已经用flask-login做了一个自定义的管理员首页,并且有一些sqlalchemy
的模型视图。我用is_accessible()
这个方法来决定显示什么内容:登录表单还是模型视图。
class BaseAdminController(ModelView):
column_exclude_list = ('created_on','modified_on')
def is_accessible(self):
return login.current_user.is_authenticated()
举个例子,我有两种用户类型 - 版主和普通用户。怎么才能让某些视图只给普通用户看,而其他的则给版主看呢?
1 个回答
1
如果你想让某些视图只对管理员可见,可以这样做:
def is_accessible(self):
if not login.current_user.is_authenticated():
return False
if not is_moderator(login.current_user):
return False
return True
然后在is_moderator这个函数里,你需要检查用户是否属于“管理员”类型。你没有提到你是如何在数据模型中存储用户类型的,所以我无法帮你写is_moderator这个函数。