我在一个 Django 项目中工作,该项目旨在管理仓库、物品和 presonell。我有以下模型:WarehouseMode、ItemModel 和 PersonellModel。
管理员必须能够创建用户并为其分配以下角色之一:
- 管理员 - 完全访问权限。
- 仓库管理员 - 受限访问(添加、删除、修改项目和 presonell)
- 个人仓库用户 - 受限访问(修改个人资料)
- 其他数据库订阅者 -(只读)
“仓库管理员”应该是一个仓库的“所有者”。
我应该使用哪个权限系统?每行权限系统?
谢谢
我在一个 Django 项目中工作,该项目旨在管理仓库、物品和 presonell。我有以下模型:WarehouseMode、ItemModel 和 PersonellModel。
管理员必须能够创建用户并为其分配以下角色之一:
“仓库管理员”应该是一个仓库的“所有者”。
我应该使用哪个权限系统?每行权限系统?
谢谢
行级权限最终肯定会让你的生活更轻松,但从经验来看,你绝对应该写出与其他任何东西分开的流程并进行大量测试。下面是我最近使用的具有行级权限的结构。
在尝试了一些之后,我的偏好是 django-guardian,我发现使用基于类的视图和 mixin 效果更好(从易于实现我设计的结构)。
https://github.com/lukaszb/django-guardian.git
class Meta:
permissions = (
('can_view', 'View project'),
('manage_view', 'Can assign View project'),
('can_edit', 'Edit project'),
('manage_edit', 'Can assign Edit project'),
('can_delete', 'Delete project'),
('manage_delete', 'Can assign Delete project'),
('creator', 'Full access to model features.'),
)