← 返回题库
中级

实现权限检查装饰器

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    roles_csv = open_url(____).read()
    import json
    PERMISSIONS = {
        '____': {'____','____','____','____','____','____'},
        '____': {'____','____','____'},
        '____': {'____','____'},
        '____': {'____'},
    }
    current_user = {'____':____,'____':'____'}
    def require_permission(____):
        def decorator(____):
            def wrapper(____):
                role = current_user.get(____)
                if perm not in PERMISSIONS.get(role, set()):
                    return f"____"
                return fn(____)
            return wrapper
        return decorator
    @require_permission(____)
    def get_products(): return '____'
    @require_permission(____)
    def update_product(____): return f'____'
    @require_permission(____)
    def create_order(): return '____'
    print(____)
    print(____)
    print(____)
    print(____)
    current_user['____'] = '____'
    print(____)
    print(____)
    print(____)

示例

输入
solve()
期望输出
role=viewer:
  get_products: products list
  update_product: 403 Forbidden: 'products:write' required, role=viewer
  create_order: 403 Forbidden: 'orders:write' required, role=viewer
role=admin:
  update_product: updated product 1
  create_order: order created
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码