Python内置方法实现访问权限控制:方法中使用了Simple RBAC 库和 Python 内置的 Powerful AOP Support ,完成了实现访问权限的控制效果。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import rbac.acl
import rbac.context
import myapp
#: 建立访问规则注册表和用户标识上下文
acl = rbac.acl.Registry()
identity = rbac.context.IdentityContext(acl)
#: 注册角色
acl.add_role("everyone")
acl.add_role("editor", ["everyone"])
acl.add_role("admin", ["everyone"])
#: 注册资源
acl.add_resource("post")
acl.add_resource("blog-post", ["post"])
acl.add_resource("blog-post:10001", ["blog-post"])
#: 规则断言www.iplaypy.com
def assert_is_author(acl, role, op, res):
"""检查 blog-post 类型的资源是否属于当前用户所有.
若一个规则的断言返回 False, 权限检查时视为这条规则不存在.
"""
#