跳转到主要内容

用于管理您的组织权限(部门、管理局等)的应用程序

项目描述

用于管理您的组织权限(部门、管理局等)的应用程序。这是一个主要针对我所在的组织(希腊的一个公共部门组织)的需求而构建的应用程序;但如果您喜欢它,请随意使用。

原理

这基本上是一个 更好的 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.Authorityauthorities.AuthorityKind。其中 AuthorityKind 只有一个名称(因此它可以是指导部门、部门团队等),而 AuthoritykindAuthorityKind)、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

支持为AuthorityAuthorityKind配置__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 (13.6 kB 查看哈希值)

上传时间

由支持