跳转到主要内容

django的规则注册

项目描述

https://secure.travis-ci.org/yourlabs/django-rules-light.png?branch=master https://img.shields.io/pypi/dm/django-rules-light.svg https://img.shields.io/pypi/v/django-rules-light.svg

这是一个django-rules的简单替代品。它的核心区别在于它不依赖于模型。相反,它使用一个可以在运行时修改的注册表。

其目标之一是允许外部应用程序的开发者创建规则,依赖它,同时允许项目覆盖规则。

示例 your_app/rules_light_registry.py

# Everybody can read a blog post (for now!):
rules_light.registry['blog.post.read'] = True

# Require authentication to create a blog post, using a shortcut:
rules_light.registry['blog.post.create'] = rules_light.is_authenticated

# But others shouldn't mess with my posts !
def is_staff_or_mine(user, rule, obj):
    return user.is_staff or obj.author == user

rules_light.registry['blog.post.update'] = is_staff_or_mine
rules_light.registry['blog.post.delete'] = is_staff_or_mine

示例 your_app/views.py

@rules_light.class_decorator
class PostDetailView(generic.DetailView):
    model = Post

@rules_light.class_decorator
class PostCreateView(generic.CreateView):
    model = Post

@rules_light.class_decorator
class PostUpdateView(generic.UpdateView):
    model = Post

@rules_light.class_decorator
class PostDeleteView(generic.DeleteView):
    model = Post

您可以阅读教程以了解更多信息。

有什么缺点?

缺点是这种方法不提供获取安全查询集的任何功能。

这意味着您必须

  • 在制作查询集时考虑安全性,

  • 覆盖最终的外部应用ListViews,如下

要求

  • Python 2.7+ (Python 3兼容)

  • Django 1.8+

快速安装

  • 安装模块: pip install django-rules-light,

  • 添加到 settings.INSTALLED_APPSrules_light,

  • settings.MIDDLEWARE_CLASSES 中添加(或 settings.MIDDLEWARE 对于 Django 1.10+): rules_light.middleware.Middleware,

您可以阅读教程

还有大量的文档,从核心到工具,包括调试、日志和测试安全性的指南。

贡献

使用tox命令运行测试。所有测试通过的补丁都有更好的机会被合并。有关详细信息,请参阅社区指南

资源

要提问或只是获取有关包更新的信息,您可以订阅邮件列表。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

django-rules-light-0.3.2.tar.gz (18.0 kB 查看散列)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面