具有细粒度访问控制的 Django 身份验证

2024-01-01

我正在为结构工程师开发一个 Django Web 应用程序,其中包含一套钢结构设计工具。每个设计工具都会有一个数据库输入表,每个表的每一行都对应于要“解决”的特定设计条件。用户可以单独工作或分组工作。每个用户都需要持续访问自己的工作,以便可以改进、复制和调整设计,并且可以在方便的时候(通常是在项目结束时需要硬拷贝文档时)创建报告。对于给定的设计项目,数据库内容必须在以月甚至数年为单位的任意数量的会话中可用。

当有一组用户时,通常都与给定的设计办公室相关,那么他们可以联合且相互访问彼此的工作,这可能是可以接受的。该应用程序支持常规的工程生产活动,而不是创新的知识产权工作,而且内部隐私无论如何也不是行业的常态。然而,这项工作绝对必须避免受到团体之外的窥探。理想情况下,每个组都会有一个或多个超级用户被授权来监管该组的成员资格。他们需要的主要工具可能是能够从组中删除成员,从而终止他的访问权限。这将是一个用户组超级用户,与站点端的超级用户不同。

为了方便访问,每个数据库表的每一行都将与一个项目编号/项目名称对相关联,该项目编号/项目名称对对于部署用户或用户组的给定公司来说是唯一的。不同的公司可以轻松地选择使用重复的项目编号,甚至可以选择重复的项目名称,因此可能必须在单独的相关“所有权列表”中跟踪哪些数据库行属于给定用户(或组) “每个用户(或组)的表。

预计(希望)最终,与不同(并且通常是竞争的)公司相关的数百个用户(或用户组)将使用这些工具解决数千个项目的数万个设计条件。

所以,这是我的问题:

首先,尝试从 Django contrib.auth 代码中挽救大部分内容是否有任何意义?据我所知,contrib.auth 是为身份验证和访问控制而设计的,适用于博客圈和网络新闻业,但不支持对“内容”访问的细粒度控制。

其次,是否有任何可用的模板、模式、示例、策略或设计建议可以应用于这个问题?


Django 权威 https://pypi.python.org/pypi/django-authority/: 文档 http://django-authority.readthedocs.org/en/latest/, GitHub 上的代码 https://github.com/jezdez/django-authority/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有细粒度访问控制的 Django 身份验证 的相关文章

随机推荐