django框架的精益平均对象级规则系统

django-rulez的Python项目详细描述


…|特拉维西图片:https://api.travis ci.org/chrisglass/django rulez.png
…_travisci https://travis-ci.org/chrisglass/django-rulez

|travisci|

#############
django-rulez
#############

django-rulez is a lean, fast and complete rules-based permissions system for
the django framework.

Most other authentication frameworks focus on使用数据库连接,经过一段时间后会变得很慢(因为大多数查询都会生成大量连接)。
django rulez使用基于内存的hashmap来代替。


django rulez是从django规则派生出来的,因为django规则设置的一些目标与我们当前的项目目标不匹配。您可以参考他们的
github项目页面,了解更多关于这个另一个酷项目的信息:
https://github.com/maraujop/django rules
为优秀的工作人员而欢呼!

通常,它也是实例级授权后端,将
规则本身存储为模型上的方法。


status
==


由于许多人问起-此项目仍处于活动状态,并在生产系统中使用,但其当前目标已实现而且不会有太多的发展。


pull请求或讨论是非常受欢迎的,特别是如果您有一个我们没有想到的有趣的用例:)


h.

installation
==





简单地安装django rulez,就像安装任何其他pypi包一样::




"settings.py"中的"authentication_backend s"列表:

authentication_backends=[
"django.contrib.auth.backends.modelbackend","django的默认auth backend
"rulez.backends.objectpermissionbackend",


示例
=可以开始了:

model s.py
来自rulez导入注册表


class mymodel(models.model):

def可以编辑(self,user-obj):
"
"不是一个非常有用的规则,但它是一个示例如果user_obj.username=='chris':
返回true
返回false


registry.register('can_edit',mymodel)



规则规定,如果self==user_obj:
return true
return false

"add_to_class"是标准的django方法
user.add_to_class('can_edit',user_can_edit)
,则只能由同一用户修改
registry.register('can_edit',user)


另一个示例:使用角色需要使用角色,但它仍然非常简洁:

models.py
来自rulez.rolez.base导入abstractrole
来自rulez.role s.models导入modelrolemixin
来自rulez导入注册表

类编辑器(abstractrole):
"这是角色"
@classmethod
def是成员(cls,user,obj):
"记住,类方法采用类而不是self。"
如果user.username=='chris':
返回true
返回false


class mymodel(models.model,modelRoleMixin):#别忘了混音!

def可以编辑(self,user_obj):
'
'


ance.can-edit(user_chris)

,或者在django rulez的身份验证后端的帮助下,对用户
对象::


user_chris.has_perm('can_edit',model_instance)

此外,还支持以下模板标记用法::

{%load rulez_perm s%}
{%rulez_perms可以将model_实例编辑为varname%}
{%if varname%}
您有权限
{%else%}
对不起,您没有权限
{%endif%}

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

推荐PyPI第三方库


热门话题
java如何在jetty请求日志中添加milliscond字段?   java在使用Scanner类从文件读取信息时遇到问题   为什么。类不适用于泛型类型?   SQLite插入上的java空指针异常   java能告诉我们Guava缓存是在禁用统计数据的情况下构建的吗?   java在应用程序中使用常量   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java如何在jtable中更新jprogress栏   java是比较给定日期和当前日期(在给定时区中没有时间段)的最佳方法   安卓代码中的java错误   java无法访问实体类中的字段   java如何在tomcat中处理三个JDBC连接池?   java无法使用Spring Security保护AngularJS页面   如何在没有TCP/IP协议栈的情况下用Java发送以太帧