-
Notifications
You must be signed in to change notification settings - Fork 61
WIP_v0_9_customize_auth_zh
Neuron Teckid edited this page May 11, 2016
·
2 revisions
定制时, 需要根据需求添加数据库中的用户表; 用户表需要有一个整数类型的主键 ID.
若不定制用户身份验证, 则所有页面所有功能均不设限制访问, 后台任务, Redis 命令执行审计等功能关联的用户 ID 均为空值.
定制时, 需要覆盖 App
类型的以下成员函数
# 获取登入页面 URL; 此结果将作为导航栏登入或登入提示页面的超链接
def login_url(self)
# 获取当前用户对象; 该用户对象将被存入 flask.g.user
def get_user(self):
return None
# 获取当前用户主键 ID
def get_user_id(self)
# 根据用户 ID 渲染一段 HTML; 在显示后台任务记录, Redis 命令执行记录等时, 作为对应的用户信息显示
def render_user_by_id(self, user_id):
return '<span data-localize="nobody">-</span>'
# 根据用户 ID 渲染一段 HTML; 用户登入后, 此 HTML 将在导航栏显示
# - user_id: 用户主键 ID, 不会为空值
# 或者, 直接修改 templates/base.html 中 "<li id='nav-current-user'>" 这个标签的内容
def render_me(self)
# 当前用户是否有效; 返回布尔值
def access_ctl_user_valid(self)
# 当前用户是否是高级用户; 在管理 Redis 镜像等功能中需要高级用户权限
def access_ctl_user_adv(self)
# 默认用户 ID; 在执行自动扩容等任务时, 使用此函数返回的用户 ID; 若不覆盖, 该函数返回空值
def default_user_id(self)
如果需要相关的用户信息呈现, 管理页面和响应的 Blueprint
, 需要定制时自行实现. 并且覆盖 App.ext_blueprints
将相应的 Blueprint
对象加入返回值.