码迷,mamicode.com
首页 > 其他好文 > 详细

flask中权限访问装饰器

时间:2018-04-05 21:28:17      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:url   wrap   权限   保存   war   函数   pos   管理员   class   

根据session里面保存的管理员id查询出对于的角色,根据角色查询出权限,根据权限查询出能够访问的路径 

# 权限控制装饰器
def admin_auth(f):
@wraps(f)
def decorated_function(*args, **kwargs): # 让某个函数来继承我们的参数
admin = Admin.query.join(
Role
).filter(
Role.id == Admin.role_id,
Admin.id == session[‘admin_id‘]
).first()
auths = admin.role.auths
auths = list(map(lambda v: int(v), auths.split(‘,‘)))
auth_list = Auth.query().all()
urls = [v.url for v in auth_list for val in auths if v.id == val.id]
rule=request.url_rule
if rule not in urls:
abort(404)
return f(*args, **kwargs)

return decorated_function

 

flask中权限访问装饰器

标签:url   wrap   权限   保存   war   函数   pos   管理员   class   

原文地址:https://www.cnblogs.com/onlyhold/p/8724292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!