django的规则注册
项目描述
这是一个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_APPS: rules_light,
在 settings.MIDDLEWARE_CLASSES 中添加(或 settings.MIDDLEWARE 对于 Django 1.10+): rules_light.middleware.Middleware,
您可以阅读教程。
还有大量的文档,从核心到工具,包括调试、日志和测试安全性的指南。
贡献
资源
要提问或只是获取有关包更新的信息,您可以订阅邮件列表。
项目详情
关闭
django-rules-light-0.3.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 769982eeb2b5260a0ea1b2bfddb968a95863499d6d528f0113231c0a179a7153 |
|
MD5 | 568acf32f02bfbcfbf18fece2d7de70d |
|
BLAKE2b-256 | 4f9d4f89164725ffe4a9472366aaf38d969b1b27c01fbc42d620dc7952e5782d |