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%}
…_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%}