用于管理您的组织权限(部门、管理局等)的应用程序
项目描述
用于管理您的组织权限(部门、管理局等)的应用程序。这是一个主要针对我所在的组织(希腊的一个公共部门组织)的需求而构建的应用程序;但如果您喜欢它,请随意使用。
原理
这基本上是一个 更好的 auth.Group,以帮助您构建组织的层次结构。为什么不直接使用 auth.Group 呢?嗯,不幸的是,auth.Group 缺少了各种所需的东西,比如
category:您可能有部门、团队、管理局
active:某些权限已被停用;但它们不应被删除
parent:您需要有一个适当的权限层次结构
email:某些权限有自己的联系邮箱
此外,对我来说,django auth.Group 实体感觉更像是一个应用程序/系统相关的概念(与该插件中提供的HR权限相比)。例如,您可以有名为“管理员”、“高级用户”或“版主”等的django auth group;这些人可能属于不同的管理局;不是“IT部门”的每个人都需要成为应用程序的管理员。
现在,还有 更多 对于权限/人力资源系统可能有用的事情,比如
manager:谁管理这个权限
user-job:权限用户可能有不同的职位,如经理(这是第一个职位的补充)、出纳、客户开发等。
我还没有添加这些字段,因为我目前的项目不需要它们。如果需要,我会添加它们。
安装
使用 pip install django-authorities 进行安装,或者如果您想使用GitHub上的最新版本,请尝试 pip install git+https://github.com/spapas/django-authorities。
安装后,将 authorities 添加到您的 INSTALLED_APPS 设置中。
简单用法
这是一个非常简单的应用,包含两个模型和一些用于编辑这些模型的视图。
安装后,您可以通过访问django管理后台来编辑 authorities.Authority 和 authorities.AuthorityKind。其中 AuthorityKind 只有一个名称(因此它可以是指导部门、部门团队等),而 Authority 有 kind(AuthorityKind)、is_active(布尔值)、parent(可选的外键,指向另一个 Authority 以创建层次结构)和 users(与 settings.AUTH_USER_MODEL 的多对多关系;每个用户可以属于多个权限,每个权限将有多于一个用户)。
我还包含了一些非管理员视图,您可以直接使用或修改它们以满足您的需求。您可以在自己的 urls.py 中继承或包含它们,或者包含整个 authorities.urls。这些视图的模板继承自 base.html,该模板需要提供 content 和一个 {% page_title %} 块。因此,您的 base.html 模板可能如下所示
<html>
<body>
<h1>{% block page_title %}{% endblock %}</h1>
{% block content %}{% endblock %}
</body>
</html>
这些视图包括
authorities.views.AuthorityListView
authorities.views.AuthorityCreateView
authorities.views.AuthorityUpdateView
authorities.views.AuthorityDetailView
authorities.views.AuthorityEditUsersView
名称自解释;请注意,创建和更新视图不允许您编辑该权限的用户;您必须使用 AuthorityEditUsersView 进行此操作。
您可以在 urls.py 中使用这些视图,或者只需在 urls.py 中添加类似 path("authorities/", include("authorities.urls")) 的内容。
为了提高安全性,我在允许访问这些视图之前会在应用程序的 urls.py 中检查用户是否有适当的权限,即 authorities.view_authority 用于列表和查看,authorities.add_authority 用于添加,authorities.change_authority 用于编辑和编辑用户。
要使用提供的模板标记,您需要 {% load authorities_tags %},然后在模板中执行如下操作
{% if user.is_authenticated %}
{% user_authorities as my_authorities %}
{% if my_authorities %}
My authorities are:
<ul>
{% for a in my_authorities %}
<li>{{ a.name }}</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
配置
支持以下选项
AUTHORITY_STR_FUNCTION:您可以使用此选项设置一个函数,该函数将替换 Authority 模型的默认 __str__ 函数
AUTHORITY_KIND_STR_FUNCTION:您可以使用此选项设置一个函数,该函数将替换 AuthorityKind 的默认 __str__
这两个函数都将对象作为参数。例如,在 project.core.utils 模块中定义一个名为 authority_str 的函数,如下所示
def authority_str(au):
return '{0} {1}'.format(au.name, au.email)
然后在 settings.py 中添加: AUTHORITY_STR_FUNCTION = project.core.utils.authority_str
变更日志
版本 v.0.4.2
按名称/类型ID创建唯一性
版本 v.0.4.1
使其与Django 4.x兼容
版本 v.0.4.0
支持为Authority和AuthorityKind配置__str__方法
版本 v.0.3.3
向apps.py添加默认的default_auto_field
版本 v.0.3.2
针对较新版本的Django进行的小修复
版本 v.0.3.1
向表单添加电子邮件
版本 v.0.3.0
向Authority添加可选电子邮件字段
版本 v.0.2.3
改进权限
版本 v.0.2.2
修复MANIFEST.in以包含区域文件
版本 v.0.2.1
添加缺失的迁移
版本 v.0.2.0
添加希腊语翻译
略微改进标准视图
向内置视图添加一些安全性
版本 v.0.1.2
添加模板标签以获取当前用户权限
改进README
版本 v.0.1.0
初始版本
项目详情
django-authorities-0.4.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6f859a7da4f6b7c711c081c085294ef32a1c519097843a643dc9517d98ccad0d |
|
MD5 | c1b250aae7359ca3a9d28ce448bc8b10 |
|
BLAKE2b-256 | f4fea87d9bfe681b4d8cc3cabe040274f91acc5087ccecc14cded4e05b2f7e92 |