用于管理对象级权限的可扩展库,支持sqlalchemy、peewee、pony和django。

guardrail的Python项目详细描述


Latest versionTravis CI

Guardrail是一个用于管理对象级权限的python库,它是 旨在与任意数据库和web框架集成。护栏 灵感来自django-guardian 目前支持sqlalchemy、peewee、pony和django orms。

主页:https://guardrail.readthedocs.org/

安装

pip install guardrail

护栏支持python>;=2.7或>;=3.3和pypy。

示例

使用registry.agent和registry.target像往常一样定义模型 用于设置权限关系的装饰程序:

importpeeweeaspwfromguardrail.coreimportregistryfromguardrail.ext.peeweeimportPeeweePermissionSchemaFactorydatabase=pw.SqliteDatabase(':memory:')classBase(pw.Model):classMeta:database=database@registry.agentclassUser(Base):name=pw.CharField()@registry.targetclassPost(Base):name=pw.CharField()@registry.targetclassComment(Base):name=pw.CharField()factory=PeeweePermissionSchemaFactory((Base,))registry.make_schemas(factory)database.connect()database.create_tables([User,Post,Comment],safe=True)database.create_tables(registry.permissions,safe=True)

然后使用权限管理器对权限执行CRUD操作 在任何代理目标模型之间:

fromguardrail.ext.peeweeimportPeeweePermissionManagermanager=PeeweePermissionManager()user=User.create(name='fred')post=Post.create(name='news of the world')comment=Comment.create(name='dragon attack')manager.add_permission(user,post,'edit')manager.add_permission(user,comment,'delete')manager.has_permission(user,post,'edit')# Truemanager.remove_permission(user,comment,'delete')manager.has_permission(user,comment,'delete')# False

许可证

麻省理工学院许可。见LICENSE 文件以获取详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程试图找出线程和Java   java字符串池(字符串和字符串缓冲区)   java如何通过entryid从kaltura获取文件url   java如何通过Oracle服务总线重定向请求   java RecyclerView我最多只能添加一行   java如何防止Paho在处理来自代理的消息后发送ACK?   java从泛型方法调用重载方法   java如何使javac编译我的多语言程序   java Log4j不会在删除时重新创建文件   java如何设置Zk会话(org.zkoss.Zk.ui),以便对扩展GenericForwardComposer的控制器类进行单元测试   Java:为什么可以对通配符集合进行强制转换?   java如何将数据更新到从自定义视图类创建的对象,以便可以在自定义视图上绘制数据?   java如何解决在片段中使用意图时应用程序崩溃的问题?   java如何使来自JSP的Servlet调用更安全?   java在Lucene中索引正则表达式并搜索输入   java如何设置Jetty,使其与Tomcat对等,同时支持JSP和servlet?   java在检查和使用对话框输入时遇到问题   java Git可以在签出时更改文件吗?