我应该在Django中使用哪个权限系统?

时间:2012-11-01 01:11:14

标签: django django-models relational-database user-permissions

我正在一个Django项目中工作,该项目旨在管理仓库,物品和presonell。 我有以下模型:WarehouseMode,ItemModel和PersonellModel。

管理员必须能够创建用户并为其分配以下角色之一:

  1. 管理员 - 完全访问权限。
  2. 仓库管理员 - 限制访问(添加,删除,修改项目和预先计算)
  3. 个人仓库用户 - 限制访问(修改个人资料)
  4. 其他数据库订阅者 - (只读)
  5. “仓库管理员”应该只是一个仓库的“所有者”。

    我应该使用哪种权限系统?每行权限系统?

    由于

1 个答案:

答案 0 :(得分:3)

行级权限肯定会让你的生活更容易实现,但是从经验来看,你应该写出与其他任何东西分开的流程并进行大量测试。我最近使用的具有行级权限的结构如下所示。

在尝试了一些我的偏好是django-guardian之后,我发现它更好(从易于实现我设计的结构)到使用基于类的视图和mixins。

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.'),
    )