flask中權限訪問裝飾器


根據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

調用該函數進行權限訪問控制
@admin_auth

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM