提供一个基于字段值的对象权限系统(例如:object.owner == user)
项目描述
django-field-object-permissions 是一个基于对象字段值的对象权限系统。(例如:object.owner == user)
安装
要安装,只需运行
pip install django-field-object-permissions
配置
将 fieldobjectpermissions 添加到设置模块的 INSTALLED_APPS
INSTALLED_APPS = ( ... 'fieldobjectpermissions', )
2. 替换默认的认证后端(fieldobjectpermissions基于它)
AUTHENTICATION_BACKENDS = ( # django.contrib.auth.backends.ModelBackend, # Default fieldobjectpermissions.backends.FieldObjectPermissionsBackend, )
这些新值是可选的,默认值如下所示
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_FIELDS 或 GROUP_FIELDS 指定多个字段,只需存在其中一个列表字段即可创建权限。并且只有当权限被认证后端授予时才需要匹配。
项目详情
关闭
django-field-object-permissions-0.1.1.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | e28300dc7031428466f497f0ef122d81514f95d55632a6734b1d02ab02224b57 |
|
MD5 | ea62d691035e4548a474e070c7b907d4 |
|
BLAKE2b-256 | cb00b79542b0641708e55cf837f70f6b461d1879fc95887afa58ad97f674dcb8 |