跳转到主要内容

提供一个基于字段值的对象权限系统(例如:object.owner == user)

项目描述

django-field-object-permissions 是一个基于对象字段值的对象权限系统。(例如:object.owner == user)

安装

要安装,只需运行

pip install django-field-object-permissions

配置

  1. fieldobjectpermissions 添加到设置模块的 INSTALLED_APPS

    INSTALLED_APPS = (
       ...
       'fieldobjectpermissions',
    )

2. 替换默认的认证后端(fieldobjectpermissions基于它)

AUTHENTICATION_BACKENDS = (
    # django.contrib.auth.backends.ModelBackend,  # Default
    fieldobjectpermissions.backends.FieldObjectPermissionsBackend,
)
  1. 这些新值是可选的,默认值如下所示

    FIELD_OBJECT_PERMISSIONS = {
        'OWNER_FIELDS': ('owner',),
        'GROUP_FIELDS': ('group',),
        'OWNER_ACTIONS': ('change', 'delete'),
        'GROUP_ACTIONS': ('change', 'delete'),
    }

4. 运行 python manage.py migrate,因为存在后迁移触发器来创建所需的额外权限。

使用方法

您现在可以分配权限,例如 owner_change_foo,仅允许匹配 owner 字段值的用户更改对象(或当然,超级用户)。

或者权限 group_delete_foo 允许任何是对象 group 字段中列出的组的成员的用户删除它(或者,你知道,超级用户)。

这些权限是在后迁移信号处理器中创建的,并且仅对具有所需字段(s)的模型进行创建。

通过为 OWNER_FIELDSGROUP_FIELDS 指定多个字段,只需存在其中一个列表字段即可创建权限。并且只有当权限被认证后端授予时才需要匹配。

项目详情


下载文件

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

源分布

django-field-object-permissions-0.1.1.tar.gz (4.9 kB 查看散列值)

上传时间

由以下支持