user-wsc/Utils/AccessControl/AccessUtil.py

33 lines
966 B
Python

from typing import Optional
from fastapi import HTTPException, Header
from Utils.Authentication.TokenUtil import decode_token
def ac_admin(token: Optional[str] = Header(...)):
user_info = decode_token(token).get("user_info")
if not user_info:
raise HTTPException(status_code=400, detail="Invalid Token")
role = user_info.get("role")
if role != "admin":
raise HTTPException(status_code=400, detail="No Access")
# def ac_index_store(request: Request, token: Optional[str] = Header(...)):
# e = casbin.Enforcer(
# os.getcwd() + r"\Utils\AccessControl\model.conf",
# os.getcwd() + r"\Utils\AccessControl\policy_index_store.csv"
# )
#
# sub = decode_token(token).get("role")
# obj = request.url.__str__().split(request.base_url.__str__()[:-1])[-1].split("?")[0]
# act = request.method
#
# if not e.enforce(sub, obj, act):
# raise HTTPException(status_code=400, detail="No Access")