多组织django授权插件和对象级权限设置

django-trusts的Python项目详细描述


简介

django-trusts是django内置授权的附加组件。它力求成为一个minimal实现,只添加了一个概念trust,以便为一个django项目启用可维护的每对象权限设置,该项目托管具有单个用户命名空间的多个组织的用户。

trust是一种关系,根据这种关系,创建者[settlor]可以对特定用户[trustee(s)]或group(s)进行内容访问。内容可以是内容< /cIT>子类的实例,或者是通过结点表的现有模型的实例。对于可维护的永久会话设置,单个trust可以允许访问多个内容。Django的内置模型group受支持,可用于定义groupuser的可重用权限。

django-trusts还努力成为一个可伸缩的解决方案。权限检查通过设计卸载到数据库中,并且实现将数据库命中率降至最低。在request user的生命周期中,每个trust缓存权限。如果一个项目的请求生命周期将大多数选中的内容解析为一个或几个trusts,这应该是非常典型的情况,那么这个设计应该是性能方面的赢家。对单个内容或QuerySet执行权限检查。

django-trusts支持django的内置用户模型has_perms()/has_perms(),并且不提供任何附加功能。

阅读更多:http://django-trusts.readthedocs.org/en/latest/

测试

运行单元测试:

` pip install virtualenv virtualenv venv/ source venv/bin/activate python setup.py test `

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

推荐PyPI第三方库


热门话题
java爬虫获取外部网站搜索结果   java Bluestack未连接到eclipse   java如何从ConstraintViolationException Hibernamte获取数据库字段名   HttpResponse HttpResponse=httpClient引发java运行时错误。执行(httpPost);   Jama中矩阵的java点积和叉积   java有什么方法可以唯一地识别可扩展设备吗?   java我需要用*来写我的名字,但我不断遇到一个错误,我对编码很陌生   java变量是在内部类中访问的。需要被宣布为最终决定。但我不想宣布最终结果   java如何缩短base64图像字符串,Android?   JavaSpringMVC:计划方法不自动触发   图形学习Java 2D API的好资源是什么?   如何在java中对方法进行排队   java JavaFX多行   java Selenium无法在[链接]上找到基于CSS元素的密码字段元素http://www.cartasi.it/gtwpages/index.jsp   Java中的equals()和hashCode()契约   软删除情况下的java Hibernate二级缓存   java为什么这段代码要两次调用这些方法?